所以我有这个功能:
当我使用下面的代码时,我将球体半径传递给扫描仪,他确定了
double,并将其传递给toRound函数。
String outputDoubles = " double one: 190.234567 and double two: 370.03245 ";
Scanner doubles = new Scanner(outputDoubles);
doubles.useDelimiter("[^\\p{Alnum},\\.-]");
while(true) {
double takeDouble;
if (doubles.hasNextDouble()) {
takeDouble = doubles.nextDouble(); // takedouble
System.out.println(toRound(takeDouble));
}
if (doubles.hasNext()) {
doubles.next();
}
else {
break;
}
}
toRound在下面:
static String toRound (double number) {
double x = number; // nog fixen
System.out.println(" \n");
double y = number;
return "" + x + y;
}
问题是它返回的不是:190.234567,而是返回:190.234567190.234567190
因此它会互相返回2次。
有没有办法解决这个问题,我已经尝试了好几个小时,但无法使其正常工作。
最佳答案
return "" + x + y;
将'x'转换为String,然后附加,将'y'转换为String,然后附加,因此输出加倍。
您需要重写此表达式"" + (x + y)
,以便在将表达式转换为字符串之前对其求值。