日期:2014-05-18  浏览次数:20410 次

为什么输入0.705四舍五入(System.Math.Round)后得到的结果是0.70 ?
decimal   rgcb2=decimal.Parse(System.Math.Round(decimal.Parse(rgcb.Text),2).ToString());

System.Math.Round方法注意的地方:

假如rgcb.Text为0.704,0.725,0.746等四舍五入(System.Math.Round)的结果分别是0.7,0.72,0.74
假如rgcb.Text为0.714,0.735,0.756等四舍五入(System.Math.Round)的结果分别是0.72,0.74,0.76

也就是0.7后面是偶数(如0,2,4等)不会四舍五入(不进一)
也就是0.7后面是奇数(如1,3,5等)会四舍五入(进一)

但是:

输入0.7044得到的结果是0.70
输入0.7045得到的结果是0.70
输入0.7046得到的结果是0.70

输入0.7054得到的结果是0.71
输入0.7055得到的结果是0.71

输入0.716得到的结果是0.72
输入0.715得到的结果是0.72
输入0.714得到的结果是0.71

输入0.706得到的结果是0.71
输入0.705得到的结果是0.70
输入0.704得到的结果是0.70


------解决方案--------------------
FormatFloat( '0.00 ',Value)

floor(float+0.5)

int(f+0.5)