gpt4 book ai didi

Java程序错误: possible loss of precision

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

我试图找出为什么我的 Java 程序中会出现这种精度丢失错误。

这是错误:

error: possible loss of precision
int digit = num/Math.pow(10,i-1)%10;
^
required: int
found: double
1 error

这是 for 循环内的代码片段

for(int i = 1; i<=String.valueOf(num).length(); i++)
{
int digit = num/Math.pow(10,i-1)%10;
//etc
}

我想将数字保留为整数变量,并且我尝试在循环之外声明数字,并且我还尝试将其转换为整数,但不起作用。我确实尝试这样做:

digit += num/Math.pow(10,i-1)%10; //with digit declare outside of loop

这很神奇,但我不想增加它,而是希望它包含我以后可以使用的数字。我在这里缺少什么吗?请解释一下。

最佳答案

我尝试按如下方式运行您的代码:

int digit = (int) (num/Math.pow(10,i-1)%10);

它按预期工作,即它迭代变量 num 的数字(我假设为 int)。

当您使用 += 运算符时,它的工作原理不是因为魔法,而是因为自动类型提升。您可以在这里阅读更多相关信息:http://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html

关于Java程序错误: possible loss of precision,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41050878/

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