c# - 删除尾随零

标签 c# .net decimal

我有一些字段由集合返回

2.4200
2.0044
2.0000

我想要这样的结果

2.42
2.0044
2

我尝试使用 String.Format,但它返回 2.0000 并将其设置为 N0 也对其他值进行舍入。

最佳答案

我遇到了同样的问题,但在我无法控制字符串输出的情况下,这是由库处理的。在查看 Decimal 类型的实现细节后(参见 http://msdn.microsoft.com/en-us/library/system.decimal.getbits.aspx ), 我想出了一个巧妙的技巧(这里作为扩展方法):

public static decimal Normalize(this decimal value)
{
    return value/1.000000000000000000000000000000000m;
}

小数的指数部分减少到恰好需要的部分。在输出小数点上调用 ToString() 将写入没有任何尾随 0 的数字。例如

1.200m.Normalize().ToString();

关于c# - 删除尾随零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4525854/

相关文章:

javascript - 至少一个字符和一个数字且重复不超过两个的正则表达式

c# - Roslyn 中的简单代码完成示例

Java Double 始终四舍五入为小数点后两位

algorithm - 从一种数字系统转换为另一种数字系统后会有多少位数字

c# - 我可以检测我的 HttpModule 中的内容是否已压缩吗?

c# - 了解 PRISM 中的模块

c# - 无法从程序集“mscorlib”加载类型 'System.Reflection.IntrospectionExtensions'

c# - 使用自定义属性装饰方法

c# - {"The directory name is invalid"} Win32Exception 未处理

java - 如何将 byte[] 数组的内容从十六进制转换为十进制?