为啥 ToString 使用不正确的小数分隔符格式化数字

Posted

技术标签:

【中文标题】为啥 ToString 使用不正确的小数分隔符格式化数字【英文标题】:Why does ToString format a number with the incorrect decimal separator为什么 ToString 使用不正确的小数分隔符格式化数字 【发布时间】:2020-02-17 09:29:24 【问题描述】:

在我的区域设置->数字/货币中,十进制符号设置为句点。然而,当我在 Razor 视图中使用以下内容时:

<td class="number-col">@Model.TendersReceived[i].Wq.ToString("N")</td>

它使用逗号作为小数分隔符呈现数字。问题不在于 Web 服务器的不同机器,因为我使用的是开发 PC 的 IIS。或者 IIS 是否遵循其他一些本地设置?

【问题讨论】:

【参考方案1】:

试试这个

@Model.TendersReceived[i].Wq.ToString("N2")

<td class="number-col">string.Format("0:0.00", @Model.TendersReceived[i].Wq)</td>

【讨论】:

我喜欢你的解决方案,谢谢,但你的回答并没有真正解决根本问题。 @Model.TendersReceived[i].Wq.ToString("N2", CultureInfo.InvariantCulture) 做得很好,谢谢。 Just plain N2 使用 IIS 网站区域设置来确定默认的小数分隔符是逗号。

以上是关于为啥 ToString 使用不正确的小数分隔符格式化数字的主要内容,如果未能解决你的问题,请参考以下文章

价格格式化--小数保留两位,整数部分用千分号分割

Java:为啥 \t 转义字符与 toString() 不一致? [复制]

如何将十进制值显示到小数点后 2 位?

小数的 SQL 格式,用逗号表示小数,仅用于数字

使用自定义组和小数分隔符将数字格式化为字符串而不更改精度

为啥 Android 的 NumberFormat 使用逗号作为澳大利亚的小数分隔符?