<分区>
我试过在这里寻找类似的问题,但我只能找到如何计算小数位数。
我想知道的是:如何找到 >0 的小数位的值?
例如,如果我们有:
decimal value = 1.920m;
decimal value2 = 1.900m;
如何检查小数点后的值是否>0?
我希望能够对此进行检查并相应地限制显示,以便我可以显示如下内容:
1.92
1.9
标签 c#
<分区>
我试过在这里寻找类似的问题,但我只能找到如何计算小数位数。
我想知道的是:如何找到 >0 的小数位的值?
例如,如果我们有:
decimal value = 1.920m;
decimal value2 = 1.900m;
如何检查小数点后的值是否>0?
我希望能够对此进行检查并相应地限制显示,以便我可以显示如下内容:
1.92
1.9
最佳答案
本质上,您想要显示具有最大可用小数位数的值并删除尾随零。这是最简单的方法:
Console.WriteLine(value.ToString("G29")); // Output 1.92
替代解决方案(与上述解决方案不同,它适用于小于 0.00001m 的数字)。虽然这看起来不像以前使用 G29 的解决方案那么简洁,但效果更好,因为它还涵盖小于 0.00001 的数字:
Console.WriteLine(value.ToString("0.#############################")); // Output 1.92
我们使用 G29,因为 29 是小数的最大可用位数。 G 或通用格式说明符用于定义可出现在结果字符串中的最大有效数字位数。使用此格式说明符截断任何尾随零。您可以阅读更多相关信息 here .
Input: 1.900m
Output: 1.9
Input: 14.571428571428571428571428571M
Output: 14.571428571428571428571428571
Input: 0.00001000000m
Output: 1E-05 (Using first solution G29)
Output: 0.00001 (Using second solution)
关于c# - 如何检查小数点后的数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43705658/