.NET(C#)将十进制数四舍五入保留第一个非零小数(Math.Round())
时间:2022-09-25
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联系,我们会及时反馈并处理完毕。