double类型计算

下面两个例子体现两个运算规则

一.四舍五入

 //四舍五入
double doublenum = Math.Round(12.5, MidpointRounding.AwayFromZero);

//两个整数转为百分数
int fullnum = 20, allnum = 3;
double percent =(float) fullnum  / allnum;
//double percent = fullnum * 1.0 / allnum;
string jobstatus = percent.ToString("P1");//P0,P1,P...保留几位小数
Response.Write("doublenum=" + doublenum + ",percent=" + percent + ",jobstatus=" + jobstatus);

输出结果:doublenum=13,percent=6.66666666666667,jobstatus=666.7%

两个整型取百分数,需要将整型转为浮点型。

二.四舍六入五取偶

据说,在delphi里,会有

var
    i, j: Integer;
begin
    i := Round(1.5); // i等于2
    j := Round(2.5); // j等于2
end;

此时没有按照"四舍五入"的规则来运算,而是另一个规则"四舍六入五取偶",即舍入位小于或大于5的部分按照"四舍五入"计算,如果等于5,要看舍入位前一位,如果前一位是奇数,则进

1,偶数不变。

这种规则采用 了Banker's rounding(银行家舍入)算法,事实上这也是 IEEE标准 规定的舍入标准。

原文地址:https://www.cnblogs.com/paulhe/p/3758765.html