Asp.net 将十进制值转换为货币字符串以在HTML中显示的最佳方法
我想在我的网上商店显示我的产品的价格。 我目前正在做:Asp.net 将十进制值转换为货币字符串以在HTML中显示的最佳方法,asp.net,browser,localization,currency,Asp.net,Browser,Localization,Currency,我想在我的网上商店显示我的产品的价格。 我目前正在做: <span class="ourprice"> <%=GetPrice().ToString("C")%> </span> 尝试此操作,它将使用应用程序的区域设置: <%=String.Format("{0:C}",GetPrice())%> 如果需要明确说明本地化,可以使用CultureInfo并将其传递给字符串格式化程序。使用 GetPrice().ToString("C",
<span class="ourprice">
<%=GetPrice().ToString("C")%>
</span>
尝试此操作,它将使用应用程序的区域设置:
<%=String.Format("{0:C}",GetPrice())%>
如果需要明确说明本地化,可以使用CultureInfo并将其传递给字符串格式化程序。使用
GetPrice().ToString("C", CultureInfo.CreateSpecificCulture("en-GB"))
您可以编写一个函数来执行从price到string的转换。通过这种方式,您可以对输出进行大量控制 locale的问题在于它依赖于web服务器,而不是web浏览器。只需使用十进制值的ToString(“C2”)属性即可。在web.config中设置全球化-保持简单。符号(U+00A3)和html实体£;英镑;应该在浏览器中呈现相同的内容 如果浏览器无法识别实体,则可能无法识别实体版本。 它在ISO8859-1(拉丁语-1)中,所以如果Mozilla浏览器不能呈现它,我会感到惊讶(我的FF当然可以) 如果你看到一个$符号,很可能你有两件事: 1.浏览器默认语言为en us 2.Asp.net正在进行自动区域设置切换。默认的web.config设置类似于
<globalization culture="auto:en-us" uiCulture="auto:en-US" />
由于您(几乎可以肯定)只想要英国价格,只需在web.config中指定区域设置:
<globalization culture="us" uiCulture="en-gb" />
(或在页面级别:)
此后,字符串格式,如string.Format(“{0:C}”、GetPrice()和GetPrice()。ToString(“C”)将使用en GB语言环境,因为asp.net将为您设置currentCulture
(虽然如果你有妄想症,可以在重载中指定en-gb区域性)。浏览器无法正确解释字符串输出“£0.00”,因为“£符号在HTML中有点不稳定,我们不想输出“£0.00”吗?
<globalization culture="us" uiCulture="en-gb" />
<%@Page Culture="en-gb" UICulture="en-gb" ..etc... %>