我想显示的价格为我的产品在我的网上商店。目前,我正在做的事情:

<span class="ourprice">
     <%=GetPrice().ToString("C")%>
</span>

在GetPrice()返回的一个小数。因此,目前返回价值,例如"英镑12.00"

我认为正确HTML为一个输出的"英镑12.00"是"&pound;12.00",所以虽然这是呈现在大多数浏览器,一些浏览器(Mozilla)显示此作为12.00美元.

(服务器是在英国,与定位设置适当地在网络。config).

是的下面一个进步,或者是有更好的办法?

<span class="ourprice">
     <%=GetPrice().ToString("C").Replace("£","&pound;")%>
</span>
有帮助吗?

解决方案

英镑的符号(U+00A3),并html实体&#163;和&磅;应所呈现的同一浏览器。

如果浏览器不承认英镑,它可能不会承认的实体的版本。这是在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-保持它的简单。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top