下面的代码应该随机创建两个整数,然后显示给需要将这两个数字除以的用户;但是,当我尝试将答案或响应更改为双倍时,它不起作用。如果您按原样运行它并得到一个诸如1/5之类的问题,那么答案最终为0,因为它是一个整数;5/4最终为1也是如此。
//Variables
String name;
String probType;
String longProbType;
int numProb;
int loFactor;
int hiFactor;
int factor1;
int factor2;
int answer;
int response;
int score;
double scorePct;
case "D":
for(int i = 0; i < numProb; i++) {
factor1 = random.nextInt(hiFactor - loFactor + 1) + loFactor;
factor2 = random.nextInt(hiFactor - loFactor + 1) + loFactor;
if(factor2 == 0) {
factor2 += 1;
}
System.out.print(String.format("\n%d / %d = ", factor1, factor2));
response = input.nextInt();
input.nextLine();
answer = factor1 / factor2;
if(answer == response) {
score += 1;
System.out.println("Correct!");
history[i] = String.format("%d / %d = %d, Correct, correct answer is %d", factor1, factor2, response, answer);
} else {
System.out.println(String.format("Incorrect! Correct answer is %d", answer));
history[i] = String.format("%d / %d = %d, Incorrect, correct answer is %d", factor1, factor2, response, answer);
}
}
System.out.println("\nSession Summary");
System.out.println(String.format("%d problems, %d correct", numProb, score));
scorePct = ((double)score / numProb) * 100;
System.out.println(String.format("Score is %.1f\n", scorePct));
System.out.println("\nProblems");
for(int i = 0; i < numProb; i++) {
System.out.println(history[i]);
}
System.out.println(outromessage);
break;
对于除法,需要将其中一个int值转换为double。然后,JRE将执行浮点除法并生成一个double。这个结果也需要在一个double中捕获。
double result = factor1 / (double) factor2;
请注意,测试浮点相等可能很棘手,会产生假阴性/阳性。
问题内容: 为了将字节数组转换为双精度型,我发现了这一点: 但是我找不到将双精度型转换为字节数组的任何东西。 问题答案: 甚至更简单
问题内容: 这是一个例子: 这将返回0,而不是应有的0.33333…。 有人知道吗? 问题答案: 这是因为和会被视为您没有另外指定时的处理方式,因此先评估, 然后将转换为。要解决此问题,请尝试,或者明确声明您正在处理double值。
问题内容: 官方Javadoc 说,它返回“等于数学整数”的a,但是为什么它不应该返回a ? 问题答案: 根据同一Javadoc: 如果自变量是或无穷大或正零或负零,则结果与自变量相同。不能用。 最大的价值也比最大的大,所以它必须是一个。
问题内容: 在Golang中如何导出返回双精度数组的函数。现在以前似乎可以返回“运行时错误:cgo结果具有Go指针”的方式: 问题答案: 为了安全地将指针存储在C中,它指向的数据必须在C中分配。
背景: 我正试图用进度回调将我的旧下载代码从Android中的AsyncTask和HttpUrlConnection迁移到使用Regetfit。但是,我注意到registfit/okhttp默认情况下不提供这样的回调。 我进行了大量搜索,找到了一些方法,包括okhttp的官方解决方案,它是由拦截器和自定义响应体完成的。然而,它们都没有真正满足我的需求。 我想要的是: 这段代码的问题是回调实际上是附
我想用一个小数点和一个小数位的格式将任何双精度四舍五入为双精度,这样29575.347434将是2.3。 我试着用decimalFormat做这个,但当我试着我只得到了一个29575.3格式的字符串,带有一个,我不知道如何在保留值为双精度的同时去掉所有小数点。