我在使用ToString()方法本地化数字时遇到了一些问题:
ToString("Nx")
正确地本地化了所有的数千个分隔符,但向whole numbers添加了不必要的尾随0,这在我的UI中看起来相当难看.另一方面,像ToString("0.###")
这样的东西正好按照我想要的方式处理小数,但它没有正确地包括千分隔符.
我希望字符串保留我想要的小数位数,而不是添加尾随的0来填充空格.
float a = 1900.42f;
//Expected result: 1,900.42
a.ToString("N2"); //1,900.42 (Perfect!)
a.ToString("0.##"); //1900.42 (Missing separators)
float b = 1900;
//Expected result: 1,900
b.ToString("N2"); //1,900.00 (Localized, unnecessary 0s)
b.ToString("0.##"); //1900 (Missing separators, no 0s)
Is there any way to have both?目前我勉强加了一句:
.Trim('0').Trim(CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator[0])
但这感觉太多了,而且没有必要,我不得不假设小数分隔符只是一个字符.感觉应该有一种方法来做我想要的已经做好的东西,我只是找不到它.