如何将十进制转换为货币格式

时间:2014-01-17 16:25:17

标签: c# decimal string-formatting string.format

我正在尝试转换一个数字,所以它看起来像金钱格式。 我需要拿258000并使其成为2,580.00或25000并使其成为250.00或360并使其成为3.60 这就是我正在使用的,但它在所有数字的末尾添加“.00”,使得2500 2500.00但它应该是25.00。

Value = string.Format("{0:##,###.00}", Convert.ToDecimal(Value));

2 个答案:

答案 0 :(得分:2)

在我看来,你只是错过了这样一个事实:你可以在解析它之后将用户的输入除以100:

using System;

class Program
{
    static void Main(string[] args)
    {
        string input = "2500";
        decimal cents = decimal.Parse(input); // Potentially use TryParse...
        decimal dollars = cents / 100m;
        string output = dollars.ToString("0.00");
        Console.WriteLine(output); // 25.00
    }
}

请注意,关于如何显示货币值存在复杂的文化规则 - 我建议使用C格式说明符,使用之类的<{1>} 无论是什么用户期望,但NumberFormatInfo.CurrencySymbol设置为空字符串。

您还应该考虑在解析用户输入时使用哪种文化 - 如果他们决定使用分组分隔符或小数分隔符,则会显着影响结果。他们总是输入一个整数吗?如果是这样,也将其解析为整数。

答案 1 :(得分:1)

double valueOriginal = 260;
Response.Write( (valueOriginal / 100).ToString("C"));

260 =(206/100) 然后     (百分之二百六十零)的ToString( “C”);