【问题标题】:Decimal value not showing correctly in html td十进制值未在 html td 中正确显示
【发布时间】:2016-01-19 21:56:24
【问题描述】:

十进制值未在 html td 中正确显示。 代码如下:

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

其中@Model.ActualExpenceEntry.Allowance 是十进制值,如123.365。但在 HTML 中,它显示为 123,365。我想按原样显示..

【问题讨论】:

  • 您是在本地运行还是在服务器上运行?如果是服务器,它设置为哪个国家/地区?
  • 是的,这是一个语言问题。某些国家/地区有效的float 值为,
  • 在本地主机中运行
  • 您电脑的国家/地区设置是什么?您的浏览器也有同样的问题?

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


【解决方案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) 破解

【讨论】:

    【解决方案2】:

    不依赖客户文化,用配置来解决。

    <system.web>
        <globalization culture="xx-XX" uiCulture="xx-XX" />
      </system.web>
    

    【讨论】:

      【解决方案3】:

      浮点值(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 是有效的外饰,例如 en-GBen-US。将其留空将导致您的应用程序回退到InvariantCulture

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-12-03
        • 1970-01-01
        • 1970-01-01
        • 2023-02-02
        • 1970-01-01
        • 2022-12-09
        相关资源
        最近更新 更多