我有一种非常紧凑的方法来删除十进制值中的尾随零,但我更喜欢一种不涉及字符串往返的方法,就像我目前所做的那样。这是我当前的解决方案:
var value = 0.010m;
value = decimal.Parse(value.ToString("G29"));
Console.WriteLine(value); // prints 0.01 (not 0.010)
Run Code Online (Sandbox Code Playgroud)
所以它有效,但是你有更好的方法吗?
另外,第二个问题是decimalValue.ToString() 100% 符合xs:decimal?
这是一个新的草案想法:
public static class DecimalEx
{
public static decimal Fix(this decimal value)
{
var x = value;
var i = 28;
while (i > 0)
{
var t = decimal.Round(x, i);
if (t != x)
return x;
x = t;
i--;
}
return x;
}
}
Run Code Online (Sandbox Code Playgroud)
这可能就可以了。但它非常粗糙。需要测试并简化它。
| 归档时间: |
|
| 查看次数: |
4822 次 |
| 最近记录: |