C#,java,vbscript都是采用的四 舍六入五成双(下有解释)。
SQL server 使用的是四舍五入。
C#如 Math.Round(1.25,1) = 1.2。
SQL 中 select round(1.25,1) 返回的是1.3。
C#中实现四舍五入的参考代码:如2.45要四舍五入到小数后一位,可以先给 2.45*10,然后加0.5,再取整,再除以10就OK了
public double C1Round(double value, int digit)
{
double vt = Math.Pow(10, digit);
double vx = value * vt;
vx +=0.5;
return (Math.Floor(vx) / vt);
}
四舍六入五成双
四舍六入五成双是一种精确度的计数保留法.舍入规律是"四舍六入五成双",这里"四"是小于五的意思,"六"是大于五的意思,"五"是舍入位之后的
尾数逢五的话看前一位,奇进偶不进,就像1.25,因为2是偶数,所以是1.2。又像1.35,因为3是奇数,所以是1.4,明不明白,这个是数据统计需
要的.
从统计学的角度,"四舍六入五成双"比"四舍五入"要科学,它使舍入后的结果有的变大,有的变小,更平均.而不是像四舍五入那样逢五就入,导致结果
偏向大数.
例如:1.15+1.25+1.35+1.45=5.2,若按四舍五入取一位小数计算
1.2+1.3+1.4+1.5=5.4
按"
四舍六入五成双"计算,1.2+1.2+1.4+1.4=5.2,舍入后的结果更能反映实际结果
一、
(int)(0.5+0.5)就是1,所以,对于从十分位四舍五入到个位只要在强行转换到int之前先加0.5,其他的位类似!
二、通过Round方法
using System.Math;
......
Round(3.045,2)//
返回值:3.05
Round(3.044,2)//返回值:3.04