最好的方式转换成一个小数值以外的货币串显示在HTML
-
01-07-2019 - |
题
我想显示的价格为我的产品在我的网上商店。目前,我正在做的事情:
<span class="ourprice">
<%=GetPrice().ToString("C")%>
</span>
在GetPrice()返回的一个小数。因此,目前返回价值,例如"英镑12.00"
我认为正确HTML为一个输出的"英镑12.00"是"£12.00
",所以虽然这是呈现在大多数浏览器,一些浏览器(Mozilla)显示此作为12.00美元.
(服务器是在英国,与定位设置适当地在网络。config).
是的下面一个进步,或者是有更好的办法?
<span class="ourprice">
<%=GetPrice().ToString("C").Replace("£","£")%>
</span>
解决方案
英镑的符号(U+00A3),并html实体£和&磅;应所呈现的同一浏览器。
如果浏览器不承认英镑,它可能不会承认的实体的版本。这是在ISO8859-1(拉丁语-1),所以我会惊讶如果一个Mozilla浏览器不能使(我FF肯定可以).
如果你看到美元的标志,它可能你有两样东西:1.浏览器默认的语言是连接我们 2.Asp.net 是做自动区域交换。默认的网络。配置设置是一样的东西
<globalization culture="auto:en-us" uiCulture="auto:en-US" />
如你所(几乎肯定会)希望英国-仅仅价格,只需指定的区域网络。配置:
<globalization culture="us" uiCulture="en-gb" />
(或者页上的水平:)
<%@Page Culture="en-gb" UICulture="en-gb" ..etc... %>
此后串的格式,例如串。格式("{0:C}",GetPrice())和GetPrice().ToString("C")将使用en-GB区域为asp.net 将设置currentCulture你
(虽然可以指定en-gb文化中的重载如果你是偏执的).
其他提示
试试这个,这会使用你的区域设置的应用程序:
<%=String.Format("{0:C}",GetPrice())%>
使用
GetPrice().ToString("C", CultureInfo.CreateSpecificCulture("en-GB"))
你可以写一个功能,这将进行的转换从价格串。这样,你有很多的控制输出。
该问题与区域是它的网络服务器的依赖以及没有网络浏览器的依赖。
如果你需要明确国家的本地化可以使用的默,并通过这串格式化程序。
只是使用ToString("C2")属的一个小数值。设置你的全球化中的网站。config-保持它的简单。