#include#includeint main()
輸出:124
#include#includeint main()
輸出:125
#include#includeint main()
輸出:125
#include#includeint main()
輸出:1//輸出均正確
#include#includeint main()
輸出:24//(輸出精度均丟失1)
#include#includeint main()
輸出:999999999
#include#includeint main()
輸出:999999999
#include#includeint main()
輸出:1000000000
#include#includeint main()
輸出:1000000000
總結**:用編譯器mingw gcc 4.7.2 32-bit編譯**
當引數和結果均為整型,當引數涉及到五的倍數,輸出結果精度可能會丟失1
當引數和結果均為整型,當結果無限逼近int的儲存範圍,輸出結果精度丟失1
原因猜想:
編譯器的配置問題
pow函式為double型別,返回值採用數值逼近的方法得到的,強制型別轉換發生截斷,精度丟失1
解決方法:
四捨五入:
2.將pow函式 結果 換成浮點型
double精度問題
double 相乘向上取整 param params return public static int upscore double d1,double d2 bigdecimal.setscale 方法用於格式化小數點 setscale 1 表示保留一位小數,預設用四捨五入方式 setscale ...
double乘法失去精度,double保留小數問題
情景 首先相除,然後 100 小數點後保留四位位小數 string result string.format 4f dividend total double r double.valueof result 接上面的 double result r 100 這是double可能會丟失精度,比如 0....
解決double型別資料四則運算精度丟失問題
直接對double型別的資料進行計算,很容易發生精度丟失問題 使用bigdecimal類計算,可以避免精度丟失 double num2 double.parsedouble numstack.pop double num1 double.parsedouble numstack.pop bigdec...