格式化在C#逗号和小数数字​​(asp.net MVC3)(format a number with

2019-08-31 08:05发布

我需要显示用逗号和小数点的数字。

例如:案例1:十进制数为432324(这个没有逗号或小数点)需要显示为432,324.00
但不是432324

案例2:十进制数为2222222.22(这没有逗号)需要显示为2,222,222.22

我试过ToString("#,##0.##") 但它不是格式化

Answer 1:

int number = 1234567890;
Convert.ToDecimal(number).ToString("#,##0.00");

你会得到的结果1,234,567,890.00



Answer 2:

也许你只是想的标准格式字符串"N" ,如

number.ToString("N")

它将使用千位分隔符,和分数小数固定数量。 对于千位分隔符的符号和小数点符号取决于格式提供商(通常CultureInfo )使用一样,小数位数(它通常由2,根据您的需要)。

如果格式提供指定不同数量的小数,如果你不想改变格式提供,你可以给以后的小数位数N ,如.ToString("N2")

编辑:逗号之间的群体的大小由管辖

CultureInfo.CurrentCulture.NumberFormat.NumberGroupSizes

阵列,因为你没有指定一个特殊的格式提供。



Answer 3:

与尝试

ToString("#,##0.00")

从MSDN

*在“0”自定义格式说明作为零占位符。 如果正被格式化的值具有在其中零出现在格式字符串的位置有一个数字,该数字被复制到结果字符串; 否则,零出现在结果字符串。 的小数点后的小数点之前的最左边的零和最右边的零的位置决定的,它们总是存在于结果串位数的范围内。

的“00”说明符使得值被舍入到最近的位之前的小数,其中来自零舍去总是使用。 例如,用“00”格式化34.5将导致值35 *



Answer 4:

我有同样的问题。 我想要像在电子表格中的“常规”格式来格式化数字,这意味着显示小数,如果他们显著,但砍其关闭,如果没有。 换一种说法:

1234.56 => 1,234.56

1234 => 1234

它需要支持小数点后位的最大数目,但不要把尾随零或点,如果不是必需的,当然,它需要文化友好。 我从来没有真正想通了清洁的方式使用做到这一点的String.Format独自一人,但和的String.Format的组合Regex.Replace从一些文化帮助NumberFormatInfo.CurrentInfo做的工作(LinqPad C#程序)。

string FormatNumber<T>(T number, int maxDecimals = 4) {
    return Regex.Replace(String.Format("{0:n" + maxDecimals + "}", number),
                         @"[" + System.Globalization.NumberFormatInfo.CurrentInfo.NumberDecimalSeparator + "]?0+$", "");
}   

void Main(){
    foreach (var test in new[] { 123, 1234, 1234.56, 123456.789, 1234.56789123 } )
        Console.WriteLine(test + " = " + FormatNumber(test));
}

生产:

123 = 123
1234 = 1,234
1234.56 = 1,234.56
123456.789 = 123,456.789
1234.56789123 = 1,234.5679


Answer 5:

对于Razor视图:

$@string.Format("{0:#,0.00}",item.TotalAmount)


Answer 6:

CultureInfo us = new CultureInfo("en-US");
TotalAmount.ToString("N", us)


Answer 7:

你的问题不是很清楚,但是这应该达到什么样的你正在尝试做的:

decimal numericValue = 3494309432324.00m;
string formatted = numericValue.ToString("#,##0.00");

然后formatted将包含:3,494,309,432,324.00



Answer 8:

与尝试

ToString("#,##0.###")

生产:

1234.55678 => 1,234.556

1234 => 1234



Answer 9:

所有这一切需要的是“#0.00”,C#没有休息。

Num.ToString( “#0.00”“)

  • 该“#0”格式的千个分隔符
  • “0.00”势力两位小数点


Answer 10:

string Mynewcurrency = DisplayIndianCurrency("7743450.00");
        private string DisplayIndianCurrency(string EXruppesformate) 
        { 
        string fare = EXruppesformate;
        decimal parsed = decimal.Parse(fare, CultureInfo.InvariantCulture);
        CultureInfo hindi = new CultureInfo("en-IN");
     // string text = string.Format(hindi, "{0:c}", parsed);if you want <b>Rs 77,43,450.00</b>
    string text = string.Format(hindi, "{0:N}", parsed); //if you want <b>77,43,450.00</b>
      return ruppesformate = text;
    }


Answer 11:

如果你正在使用字符串变量可以格式化直接使用字符串:然后指定的格式(例如N0,P2等)。

decimal Number = 2000.55512016465m;
$"{Number:N}" #Outputs 2,000.55512016465

您还可以指定小数号码加入了许多到最后以示样

$"{Number:N1}" #Outputs 2,000.5
$"{Number:N2}" #Outputs 2,000.55
$"{Number:N3}" #Outputs 2,000.555
$"{Number:N4}" #Outputs 2,000.5551


文章来源: format a number with commas and decimals in C# (asp.net MVC3)