实现浮点数的四舍五入RoundOff,保留几位小数
Posted yfceshi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实现浮点数的四舍五入RoundOff,保留几位小数相关的知识,希望对你有一定的参考价值。
直接上代码,非常简短
double myRound(double d,int n)
{
d = d*pow(10,n);
d += 0.5;
d = (long)d;
d = d/pow(10,n);
return d;
}
上述代码中的d是我们要进行四舍五入的浮点数。n是我们要保留的小数点后位数。
四舍五入。主要靠这两行代码实现
d += 0.5;
d = (long)d;
强制类型转换,会直接舍去小数点后的数字,而先对d进行加0.5操作,则是为了四舍五入,比方4.1,加0.5后变为4.6,强转,舍去小数部分。变为4;又如5.7,加0.5后变为6.2。强转,舍去小数部分,变为6。
保留n位小数,主要靠
d = d*pow(10,n);
和
d = d/pow(10,n);
比方对,62.164保留2位小数,先乘10的二次方,为6216.4,四舍五入位6216。在除以10的二次方,为62.16。
以上是关于实现浮点数的四舍五入RoundOff,保留几位小数的主要内容,如果未能解决你的问题,请参考以下文章
请问java提供啥方法实现将一个浮点数,四舍五入只保留小数点后两位
c语言中浮点数四舍五入 。 保留一个浮点数小数点后的6位,第3位要四舍五入。如 1.1234.567到1234.570000