gpt4 book ai didi

java - 扫描仪给出相同的值 2x 而不是 1

转载 作者:行者123 更新时间:2023-12-01 18:58:24 25 4
gpt4 key购买 nike

所以我有这个功能:

当我使用下面的代码时,我将球体半径传递给扫描仪,他识别出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所以它会依次返回两次。

有没有办法解决这个问题,我已经尝试了几个小时不同的事情,但无法使其工作。

最佳答案

return ""+ x + y; 会将 'x' 转换为字符串然后附加它,将 'y' 转换为字符串然后附加,因此输出加倍。

您需要重写此表达式""+ (x + y),以便它在将表达式转换为字符串之前先计算您的表达式。

关于java - 扫描仪给出相同的值 2x 而不是 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13210994/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com