这是我的代码的外观:为什么简单计算的值在java中给出错误的结果?它溢出吗?
double test = (21757952*100)/63290718;
Log.i("TAH", "test = " +test);
它显示 “测试= -33
”
为什么值错了吗? 溢出了吗?
这是我的代码的外观:为什么简单计算的值在java中给出错误的结果?它溢出吗?
double test = (21757952*100)/63290718;
Log.i("TAH", "test = " +test);
它显示 “测试= -33
”
为什么值错了吗? 溢出了吗?
在那里发生整数溢出。既然你不是说那些是双打的。
尝试
double test = (21757952.0 * 100)/63290718;
System.out.println(test);
制作值(或所有值)double
(或表明双)确保操作应与双打完成。
@downvoter,为此投下的宝贵意见?这样我才能今天学到新东西。 –
double test = (21757952*100)/63290718;
21757952,100,63290718中的值应该用作double。目前它们的值为int
。
您可以尝试如下。
double test = (21757952.0*100.0)/63290718.0;
System.out.println(test);
这将解决你的问题
double test = (double)21757952*100/63290718;
虽然答案正确,但避免在任何地方投射,并添加指示数据类型的文字。这更可读。 –
谢谢,我会照顾它。 –
是的,它是溢出。将括号中的一个值转换为double。 – SJuan76