小编Sho*_*osh的帖子

ToString() - 本地化浮点数而不添加不必要的尾随零?

我在使用 ToString() 方法本地化数字时遇到了一些问题:

ToString("Nx")正确本地化所有千位分隔符,但在整数中添加了不必要的尾随 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)
Run Code Online (Sandbox Code Playgroud)

有没有办法两者兼得呢?目前我正在添加:

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, …
Run Code Online (Sandbox Code Playgroud)

.net c#

5
推荐指数
1
解决办法
128
查看次数

标签 统计

.net ×1

c# ×1