首页 .Net .NET(C#)将十进制数四舍五入保留第一个非零小数(Math.Round())

.NET(C#)将十进制数四舍五入保留第一个非零小数(Math.Round())

1、示例实现的效果

0.001->0.001
0.00367->0.004
0.00337->0.003
0.000000564->0.0000006
0.00000432907543029->0.000004

2、使用Math.Round()实现代码

precision变量是Math.Round第二个参数。通过乘10判断小数位数,代码如下:

staticdecimalRoundFirstSignificantDigit(decimalinput){
intprecision=0;
varval=input;
while(Math.Abs(val)<1)
{
val*=10;
precision++;
}
returnMath.Round(input,precision);
}

方法可以封装成扩展方法

publicstatic>FloatExtension
{
publicstaticdecimalRoundFirstSignificantDigit(thisdecimalinput)
{
intprecision=0;
varval=input;
while(Math.Abs(val)<1)
{
val*=10;
precision++;
}
returnMath.Round(input,precision);
}
}

扩展方法调用

decimalinput=0.00001;
input.RoundFirstSignificantDigit();

输出结果

(-0.001m).RoundFirstSignificantDigit()-0.001
(-0.00367m).RoundFirstSignificantDigit()-0.004
(0.000000564m).RoundFirstSignificantDigit()0.0000006
(0.00000432907543029m).RoundFirstSignificantDigit()0.000004

特别声明:本站部分内容收集于互联网是出于更直观传递信息的目的。该内容版权归原作者所有,并不代表本站赞同其观点和对其真实性负责。如该内容涉及任何第三方合法权利,请及时与824310991@qq.com联系,我们会及时反馈并处理完毕。