0

我无法在自定义格式化字符串中格式化十进制

0.656 => 0.67; 
23.656 => 23.67;
5105.54 => 5 105.54;
1234567,89 => 1 234 567,89

我找到了几个帖子:

c# - 使用字符串格式显示最多 2 位的小数或简单整数

c# - 将 Decimal 转换为非默认格式的字符串

但是当尝试使用它们时会遇到几个问题

例如:关于价值

0.656 我得到“.656”或“.66”

23.656 => “23.656”或“23.66”

有人推荐我可以找到格式字符串规则的链接?

4

3 回答 3

1

我认为您实际上并不想转换0.6560.67,因为它是错误的。我猜你的意思是它应该显示为0.66

利用

YourNumber.ToString("0.##");

如果您真的想要空格(我认为这是错误的):

YourNumber.ToString("#,##0.##").Replace("."," ")
于 2013-11-11T08:35:27.373 回答
1

好好读一读:

自定义数字格式字符串

您可以使用String.FormatToString()重载来实现您的目标。

于 2013-11-11T08:37:04.633 回答
0

如果要将数字格式化为货币值,请使用此

var d = 0.656;
Console.WriteLine("{0:C}", d); // prints "€ 0,66", in my case

确保您的本地化设置为您提供正确的货币符号和小数字符,即点或逗号。

于 2013-11-11T08:47:54.517 回答