我需要一種簡單的方法(JAVA)在此模式下舍入歐分:舍入歐分方法
- 1.00 = 1.00
- 1.01 = 1.00
- 1.02 = 1.00
- 1.03 = 1.05
- 1.04 = 1.05
- 1.05 = 1.05
- 1.06 = 1.05
- 1.07 = 1.05
- 1.08 = 1.10
- 1.09 = 1.10
- 1.10 = 1.10
誰能幫助我?謝謝。
我需要一種簡單的方法(JAVA)在此模式下舍入歐分:舍入歐分方法
誰能幫助我?謝謝。
double euro = 1.07;
final double dif = euro % 0.05;
if (dif > 0.025) {
euro += 0.05 - dif;
} else {
euro -= dif;
}
使用'double'來存儲金錢是個壞主意。 – Jesper 2012-02-13 12:36:15
爲什麼使用雙重存儲金額是一個壞主意?如果返回錯誤或腐敗數據,您可以發佈代碼嗎?對不起和坦克。 – 2012-02-14 17:54:12
無法正常工作:157.68 - > 157.67999999999998我需要157.68 - > 157.70 – 2012-02-14 18:00:36
我不知道正確的Java語法,但是這應該給招:
price = round(price * 100/5)/100 * 5
一般:這是一個壞主意來存儲錢花車/雙打,它只會導致災害。
如果你的號碼保持足夠小,你可以使用存儲分數的整數:100,101,...在你的例子中。如果它們可能會變得太大,則使用BigIntegers或等效。
你可以這樣轉換你想要的方式:減1(分),除以粒度(在這種情況下爲5美分),加1,乘以粒度。
您可以請添加一些參考或理由爲什麼浮動是不好的錢? – PiTheNumber 2012-02-13 12:44:45
當然! http://www.javapractices.com/topic/TopicAction.do?Id=13 – 2012-02-13 12:51:00
你有沒有試圖編寫任何代碼? – Aziz 2012-02-13 12:24:35
「任何人都可以幫助我」我們可以幫助您解決您編寫的代碼中的問題,但是SO不是一種代碼編寫服務。請發佈您迄今爲止寫的內容。 – Raedwald 2012-02-13 12:25:35
他不知道如何編寫代碼。我認爲這是一個有效的問題。 – PiTheNumber 2012-02-13 12:30:00