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标准 规定的舍入标准。