在html td中无法正确显示十进制值。 这是代码:
<table>
<tr>
<td>@Model.ActualExpenceEntry.Allowance</td>
</tr>
</table>
其中@Model.ActualExpenceEntry.Allowance
是十进制值,如123.365
。但在HTML中,它显示为123,365
。我想表现出来......
答案 0 :(得分:1)
您可以使用以下内容:
<table>
<tr>
<td>@Model.ActualExpenceEntry.Allowance.ToString(CultureInfo.InvariantCulture)</td>
</tr>
</table>
通过这种方式,您可以强制在不变文化中显示数字,这也意味着点(。)将用作小数分隔符。
但是,您可能希望在web.config文件中设置文化信息,以便在整个应用程序中使用相同的数字格式 - 例如:
<configuration>
<system.web>
<globalization culture="en-US" uiCulture="en-US" />
</system.web>
</configuration>
那么你当然不需要.ToString(CultureInfo.InvariantCulture)
答案 1 :(得分:0)
不依赖于客户文化,使用配置来解决它。
<system.web>
<globalization culture="xx-XX" uiCulture="xx-XX" />
</system.web>
答案 2 :(得分:0)
显示浮点值(float
,double
,decimal
)的方式在很大程度上取决于区域设置。
某些区域设置使用,
作为小数分隔符,有些区域设置使用.
。
有多种方法可以解决您的问题。如果这是您希望使用.
而不是,
显示小数的唯一位置,那么我建议将.ToString()
与自定义格式(或区域设置)一起使用
实施例
<td>@Model.ActualExpenceEntry.Allowance.ToString("0.##")</td>
这将使用当前的线程文化。
使用InvariantCulture
,还会显示带有.
小数分隔符的数字。
<td>@Model.ActualExpenceEntry.Allowance.ToString(CultureInfo.InvariantCulture)</td>
解决问题的另一种方法是更改项目全局的文化,但这可能会破坏号码解析和“打印输出”。
例如,Double.Parse()
将忽略,
并将"1,5"
解析为15
。这可能是一个容易忽视的事情。
@Gurgen_Sargsyan提供了一个如何通过web.config
执行此操作的示例它取决于客户文化,使用配置来解决它。
<system.web> <globalization culture="xx-XX" uiCulture="xx-XX" /> </system.web>
其中xx-XX是有效的cutlure,例如en-GB
或en-US
。将其留空将导致您的应用程序返回InvariantCulture
。