这是我的代码的样子:
double test = (21757952*100)/63290718;
Log.i("TAH", "test = " +test);
Run Code Online (Sandbox Code Playgroud)
它显示"test = -33"
为什么价值错了?它溢出了吗?
整数溢出发生在那里.既然你没有说那些是双打的.
尝试
double test = (21757952.0 * 100) / 63290718;
System.out.println(test);
Run Code Online (Sandbox Code Playgroud)
创建一个值(或所有值)double(或指示为double)确保操作应该使用双精度.