看板Programming
标 题Re: [问题] c++浮点运算
发信站枫桥驿站 (Tue Apr 12 04:22:37 2011)
转信站ptt!news.ntu!ctu-gate!news.nctu!newsfeed.nthu!news.cs.nthu!MapleBBS
※ 引述《[email protected] (NUE BLA)》之铭言:
> 43270.2/7200
> 在c程式运算 = 6.0097499999999995 (有误差)
> 在小算盘运算 = 6.00975 (精确值)
> 我知道第一个结果是因为IEEE-754的原因所以有误差 (43270.2无法用2进制完全表示)
> 请问小算盘是怎麽做到的? 在c程式如何像小算盘一样算出精确值?
小数下8 位, 16位使用四舍五入.(保持 7位, 15位精度).
这是最近看到王安的作法.(古早年代的解法).
小算盘是一般用的. 不是科学用. 所以尽可能显示一般人
的惯例. 不过..
1/3= 0.333333333333333333333333333333333
它会秀出32位精度还真有趣.
--
※ Origin: 枫桥驿站<bbs.cs.nthu.edu.tw>
◆ From: tommy @ 125-232-134-203.dynamic.hinet.net