提问人:Patrick 提问时间:11/2/2023 更新时间:11/2/2023 访问量:29
NumberFormatInfo NumberDecimalDigits 尽管回答类似,但不起作用
NumberFormatInfo NumberDecimalDigits not working despite similar answer
问:
这似乎是一项非常简单的任务,但我无法解决这个问题。 我需要在任何国际体系上写一个十进制数
- 没有千位分隔符'
- 小数点分隔符为 。
- 固定的小数位数
所以没有 1'234,56789 而是 1234.5678
按照这个答案,似乎很简单。
我有定义
var nfi = new NumberFormatInfo()
{
NumberDecimalSeparator = ".",
PerMilleSymbol = "",
NumberDecimalDigits = 4
};
然后我用它来
string aaa = string.Format(nfi, "{0:N}", d);
或
string aaa = d.ToString("N", nfi);
但是千位分隔符不起作用,我得到“1,234.5679”
相反,如果我这样做
string aaa = d.ToString(nfi);
它是 NumberDecimalDigits 不起作用,我得到“1234.56789000003”
因此,在这两种方式中,我都无法摆脱所有限制来开始工作。
感谢您帮助我找到解决这个问题的干净方法。 帕特里克
答:
2赞
J.Salas
11/2/2023
#1
您正在使用正确的PerMilleSymbol
NumberGroupSeparator
因此,您的自定义格式信息应该是
var nfi = new NumberFormatInfo()
{
NumberDecimalSeparator = ".",
NumberGroupSeparator= "",
NumberDecimalDigits = 4
};
评论
0赞
Patrick
11/2/2023
谢谢!正确的用法是字符串 aaa = string。格式(nfi, “{0:N}”, d);
评论
InvariantCulture