代碼如下:public?class?mainTest?{
????public?static?void?main(String[]?args)?{
????????????System.out.println(testDouble("10.8"));
????????????System.out.println(testFloat("10.8"));
????????????System.out.println("----------------------");
????????????System.out.println(testDouble("38.8"));
????????????System.out.println(testFloat("38.8"));
????}
????public?static?int?testDouble(String?str){
????????Double?d?=?Double.valueOf(str);
????????return?(int)(d*100);
????}
????public?static?int?testFloat(String?str){
????????Float?f?=?Float.valueOf(str);
????????return?(int)(f*100);
????}
}輸出結(jié)果為:1080
1080
----------------------
3879
38803879和3880,之間差了一。我知道是因為精度轉(zhuǎn)化導致的。但是我想知道具體是為什么。謝謝。
請教一個關(guān)于精度轉(zhuǎn)換的問題(分轉(zhuǎn)元)。
Its_forever
2016-11-06 17:37:22