关于DELPHI的四舍五入

因为DELPHI里的一般默认的舍入方式都是用银行家舍入法
也就是“四舍六入五成双”的做法,但是这样的做法往往不太适合中国人的习惯
于是居然开始有人用判断语句写函数实现,加入很多判断
甚至有人用上了字符串处理实现,还被奉为牛B一般

其实一般正数的四舍五入到整数可以用 + 0.5取整实现
trunc(x+0.5)

对于保留小数位的情况,或可以借用 *X 再除 X
X := pow(10, 小数位数)

网上还提供一种做法,不过测试者对这样的做法不是很自信,但是看起来是可以实现的

  1. SetRoundMode(rmTruncate); //這行很重要   
  2. double d = SimpleRoundTo(1.245, -2);  

Delphi帮助里面写得清清楚楚!

   SimpleRoundTo :四舍五入(不对称算数做法)
   RoundTo:四舍六入,五入单(银行家做法)
   RoundTo(1.235, -2) = 1.24
   RoundTo(1.245, -2) = 1.24

RoundTo是银行家的 做法,
SimpleRoundTo才是我们平时说的四舍五入!

posted @ 2013-04-28 12:56  小天1981  阅读(298)  评论(0编辑  收藏  举报