作者MLP2007 (NUE BLA)
看板Programming
標題[問題] c++浮點運算
時間Mon Apr 11 16:43:06 2011
43270.2/7200
在c程式運算 = 6.0097499999999995 (有誤差)
在小算盤運算 = 6.00975 (精確值)
我知道第一個結果是因為IEEE-754的原因所以有誤差 (43270.2無法用2進制完全表示)
請問小算盤是怎麼做到的? 在c程式如何像小算盤一樣算出精確值?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.219.200.162
推 jtmh:沒小算盤的原始碼可能無法得知吧?不過可以自 59.113.97.61 04/11 21:14
→ jtmh:己想辦法做到相同的效果,例如用 long double 59.113.97.61 04/11 21:15
→ jtmh:或 big decimal 或另外分析被除數和除數,再 59.113.97.61 04/11 21:16
→ jtmh:做錯誤修正? 59.113.97.61 04/11 21:17