这是我的代码:
double width = 50/110000;
System.out.println("width ori is "+width );
Run Code Online (Sandbox Code Playgroud)
输出是: 0.00000000000
怎么了 ?预期的产出必须是4.5454545454545455E-4
任何人都可以向我解释原因吗?
Ale*_* C. 37
因为你要划分两个整数,所以它只取整数部分(整数除法).
在计算机程序中划分整数需要特别小心.一些编程语言,处理整数除法(即通过给出整数商作为答案).所以答案是整数.
例子 :
In real life In Java
4/3 = 1.33333 4/3 = 1
25/12 = 2.083333 25/12 = 2
9/2 = 4.5 9/2 = 4
50/110000 = 0.000454545 50/110000 = 0
Run Code Online (Sandbox Code Playgroud)
您可以使用其中一个(或两个但实际上没用)double来避免这种情况:
double width = (double)50/110000;
double width = 50d/110000;
double width = 50.0/110000;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1232 次 |
| 最近记录: |