所以我我的雙倍被改變了嗎?
double a= 199812280115
當我
System.out.println(a);
我得到
1.9981228E13
的double a
這種表示並不意味着存儲的值已經被改變嗎?
所以我我的雙倍被改變了嗎?
double a= 199812280115
當我
System.out.println(a);
我得到
1.9981228E13
的double a
這種表示並不意味着存儲的值已經被改變嗎?
一個很好的方法來檢查,如果你的價值發生變化時,通過做這樣的事情:
double a= 199812280115;
double b= 199812280000;
double c = a - b;
System.out.println(c);
你會看到自己,如果你的雙已經失去精度。
根據默認的toString()vaue,控制檯中打印的double值已被格式化,但值保持不變。如果您希望按「原樣」打印值,則應使用NumberFormat
進行格式化和打印。
當然'b'也可能失去精度......但是,這是一個有用的方法。 – Floris