我有一个十进制值,后面有一个可变位数.,例如:
0.0030
0.0310
0.0001
1.1200
如何编写一个在小数结尾处删除0的动态函数?
Tho*_*rna 28
你也可以修改小数本身,这样任何ToString()都会给你你想要的东西(我在这里回答的更多细节):
public static decimal Normalize(decimal value)
{
    return value/1.000000000000000000000000000000000m;
}
Jon*_*röm 20
string.Format("{0:0.#####}", 0.0030)
要么
var money=1.3000m;
money.ToString("0.#####");
为了将来参考,我推荐John Sheehan撰写的.NET格式字符串快速参考.
decimal value = 0.0030m;
value.ToString(“G29?);
编辑:G格式化程序确实有效,唯一的问题是,如果原始小数中有太多有效数字,它会跳转到科学记数法.不太理想.
请参阅此处的"常规("G")格式说明符"文档:http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx#GFormatString
我正在吃午饭,所以我做了一点测试:
decimal d1 = 0.000100m;
decimal d2 = 0.001000000000000000000000m;
decimal d3 = 0.000000000000001000000000m;
Console.WriteLine(Environment.NewLine + "input decimal: 0.000100m");
Console.WriteLine("G         " + d1.ToString("G"));
Console.WriteLine("G29       " + d1.ToString("G29"));
Console.WriteLine("0.####### " + d1.ToString("0.#######"));
Console.WriteLine(Environment.NewLine + "input decimal: 0.001000000000000000000000m");
Console.WriteLine("G         " + d2.ToString("G"));
Console.WriteLine("G29       " + d2.ToString("G29"));
Console.WriteLine("0.####### " + d2.ToString("0.#######"));
Console.WriteLine(Environment.NewLine + "input decimal: 0.000000000000001000000000m");
Console.WriteLine("G         " + d3.ToString("G"));
Console.WriteLine("G29       " + d3.ToString("G29"));
Console.WriteLine("0.####### " + d3.ToString("0.#######"));
输出:
input decimal: 0.000100m
G         0.000100
G29       0.0001
0.####### 0.0001
input decimal: 0.001000000000000000000000m
G         0.001000000000000000000000
G29       0.001
0.####### 0.001
input decimal: 0.000000000000001000000000m
G         0.000000000000001000000000
G29       1E-15
0.####### 0
| 归档时间: | 
 | 
| 查看次数: | 31035 次 | 
| 最近记录: |