关于DELPHI的四舍五入
因为DELPHI里的一般默认的舍入方式都是用银行家舍入法
也就是“四舍六入五成双”的做法,但是这样的做法往往不太适合中国人的习惯
于是居然开始有人用判断语句写函数实现,加入很多判断
甚至有人用上了字符串处理实现,还被奉为牛B一般
其实一般正数的四舍五入到整数可以用 + 0.5取整实现
trunc(x+0.5)
对于保留小数位的情况,或可以借用 *X 再除 X
X := pow(10, 小数位数)
网上还提供一种做法,不过测试者对这样的做法不是很自信,但是看起来是可以实现的
- SetRoundMode(rmTruncate); //這行很重要
- double d = SimpleRoundTo(1.245, -2);
Delphi帮助里面写得清清楚楚!
SimpleRoundTo :四舍五入(不对称算数做法)
RoundTo:四舍六入,五入单(银行家做法)
RoundTo(1.235, -2) = 1.24
RoundTo(1.245, -2) = 1.24
RoundTo是银行家的 做法,
SimpleRoundTo才是我们平时说的四舍五入!