我的数据库中有一些价格存储为数据类型money
并具有以下代码:
result.RangeMinimum = (decimal)ad.RangeMinimum;
result.RangeMaximum = (decimal)ad.RangeMaximum;
输出结果为:
38000
和
42000
理想情况下,我想要的是[确切]这样的东西:
38, 000.00
和
42, 000.00
我怎样才能做到这一点?我的意思是,是否已经存在一个内置于.NET框架中的现有类?
答案 0 :(得分:3)
您想要实现的目标可以通过自定义数字格式完成,即用于
ToString()
方法或String.Format()
方法
答案 1 :(得分:3)
正如您指定的“确切”并且在昏迷之后有空格似乎标准数字格式不起作用。您可以使用String.Format
轻松自定义自己的格式。
Decimal number = 38000.01m;
string formatted = string.Format(CultureInfo.GetCultureInfo("en-US"), "{0:#, ###.00}", number);
// formatted now contains "38, 000.01"
输出为:38, 000.01
请永远记住cultureinfo,以便我们非美国公民可以享受应用程序。 :)
有关使用自定义数字格式进行格式化的信息,请参见MSDN。
注意最后的00,他们强制两位数。根据您的使用情况,您可能希望也可能不希望这种行为。如果需要,替换为##。另外,如果在循环中使用它,则不要在每次调用string.Format时进行文化查找。
答案 2 :(得分:2)
您可以将其格式化为
string.Format("{0:#,#.##}", decimalValue)
答案 3 :(得分:2)
string currencyString = result.RangeMinimum.ToString("C", CultureInfo.CurrentCulture);
答案 4 :(得分:2)
试试这个
result.ToString("N");
使用CultureInfo.InvariantCulture
你可以定义自己的格式
答案 5 :(得分:1)
尝试 十进制ad.RangeMinimum = Decimal.Parse(result.RangeMinimum.ToString(“#0.00”));