gpt4 book ai didi

java - 如何使该子例程能够使用 double 而不仅仅是整数?

转载 作者:行者123 更新时间:2023-12-01 21:16:38 31 4
gpt4 key购买 nike

我必须使这个子例程能够使用 double ,而不仅仅是整数。我是编码新手,真的不明白这一点。

这是子例程:

public static int readNumber() throws Exception 
{
int number = 0;
char characterAsciiCode = '0';
int numberValue = 0;
characterAsciiCode = (char)System.in.read();
while ( characterAsciiCode != '\n')
{
//convert the character code to an actual numeric value
numberValue = characterAsciiCode - '0';
//integrate the numeric digit into the total number
number = number * 10 + numberValue;
//get the next character from the keyboard buffer
characterAsciiCode = (char)System.in.read();
}
return number;
}

我们将非常感谢您的帮助。

最佳答案

因此,假设您应该在没有 nextInt() 或 nextDouble() 的情况下自己构建数字,您可以扩展已有的逻辑,如下所示:1) 如果在 . 之前遇到新行,只需返回到目前为止找到的数字的双倍。2)如果您遇到. (我在这里是以美国为中心的,如果你住的地方使用了逗号,请相应地调整)首先,保存数字,使用与以前相同的例程将小数部分累加为整数(以换行符结尾),但跟踪的长度小数部分。3) 返回数字部分加上小数部分除以 10^decimalLength。这是代码。它可能有一两个不必要的 Actor 阵容。我一直很谨慎。

public static double readNumber() throws Exception {
int number = 0;
char characterAsciiCode = '0';
int numberValue = 0;

characterAsciiCode = (char) System.in.read();

while ((characterAsciiCode != '\n') && (characterAsciiCode != '.')) {
//convert the character code to an actual numeric value
numberValue = characterAsciiCode - '0';
//integrate the numeric digit into the total number
number = number * 10 + numberValue;
//get the next character from the keyboard buffer
characterAsciiCode = (char) System.in.read();
}
if (characterAsciiCode == '\n') {
return (double) number;
}
int decimal = 0;
int decimalLen = 0;
characterAsciiCode = (char) System.in.read();
while (characterAsciiCode != '\n') {
//convert the character code to an actual numeric value
numberValue = characterAsciiCode - '0';
//integrate the numeric digit into the total number
decimal = decimal * 10 + numberValue;
decimalLen++;
//get the next character from the keyboard buffer
characterAsciiCode = (char) System.in.read();
}
return (double) number + (double) decimal / Math.pow(10, decimalLen);

}

关于java - 如何使该子例程能够使用 double 而不仅仅是整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58869236/

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