作者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
1F:推 jtmh:没小算盘的原始码可能无法得知吧?不过可以自 59.113.97.61 04/11 21:14
2F:→ jtmh:己想办法做到相同的效果,例如用 long double 59.113.97.61 04/11 21:15
3F:→ jtmh:或 big decimal 或另外分析被除数和除数,再 59.113.97.61 04/11 21:16
4F:→ jtmh:做错误修正? 59.113.97.61 04/11 21:17