在 Java 中将 Long 与 Double 相除会产生错误的结果
Dividing Long with Double in Java producing wrong results
我正在尝试将 Java 中的 Long
与 0.99
之类的百分比相除,但它总是给我疯狂的结果。
long totalBytes = 5877062
long final = (long) (totalBytes / 0.99) // IT PRODUCES 5936426 > totalBytes
我做错了什么?对于 1.00
它运作良好,如果我给 0.95 ++
它总是产生比 totalBytes
.
更大的东西
为什么我会失去精度?
Java Version 10.0.2
如果您想占总字节数的一定百分比,您应该乘以小数百分比与总字节数的值:
long totalBytes = 5877062;
long percent = (long) (0.99 * totalBytes);
我正在尝试将 Java 中的 Long
与 0.99
之类的百分比相除,但它总是给我疯狂的结果。
long totalBytes = 5877062
long final = (long) (totalBytes / 0.99) // IT PRODUCES 5936426 > totalBytes
我做错了什么?对于 1.00
它运作良好,如果我给 0.95 ++
它总是产生比 totalBytes
.
为什么我会失去精度?
Java Version 10.0.2
如果您想占总字节数的一定百分比,您应该乘以小数百分比与总字节数的值:
long totalBytes = 5877062;
long percent = (long) (0.99 * totalBytes);