在html td中未正确显示十进制值

时间:2016-01-19 09:37:39

标签: jquery html asp.net-mvc asp.net-mvc-4

在html td中无法正确显示十进制值。 这是代码:

<table>
   <tr>
       <td>@Model.ActualExpenceEntry.Allowance</td>
   </tr>
</table>

其中@Model.ActualExpenceEntry.Allowance是十进制值,如123.365。但在HTML中,它显示为123,365。我想表现出来......

3 个答案:

答案 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)

显示浮点值(floatdoubledecimal)的方式在很大程度上取决于区域设置。

某些区域设置使用,作为小数分隔符,有些区域设置使用.

有多种方法可以解决您的问题。如果这是您希望使用.而不是,显示小数的唯一位置,那么我建议将.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-GBen-US。将其留空将导致您的应用程序返回InvariantCulture