c# - 如何检查小数点后的数值

标签 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/

相关文章:

c# - 在 Controller 的构造函数之外使用依赖注入(inject)

javascript - 如何在特定时间从 javascript 调用 C# 中的函数

c# - 使用 DbContext 在一个文件中生成 POCO 类

c# - 如何从 List<T> 中删除重复项?

c# - Marshal.Copy,将一个 IntPtr 数组复制到一个 IntPtr

c# - 如何避免 NLog.Config 中的冗余?

c# - 单击按钮后应如何隐藏 AppBars?

c# - 如何查询复数n :m relationship for getting an IEnumerable in C#

c# 9.0 协变返回类型和接口(interface)

c# - 将接口(interface) B 的实现转换为接口(interface) A 的实现