私はこの行を持っています
@String.Format("{0:C}", @price)
私のかみそりのビューで。価格の前にドル記号を表示したいのですが、代わりにポンド記号を表示します。どうすればこれを達成できますか?
私はこの行を持っています
@String.Format("{0:C}", @price)
私のかみそりのビューで。価格の前にドル記号を表示したいのですが、代わりにポンド記号を表示します。どうすればこれを達成できますか?
他の人が言ったように、IFormatProvider を介してこれを実現できます。ただし、通貨の書式設定は通貨記号をはるかに超えていることに注意してください。たとえば、米国での正しい形式の価格は "$ 12.50" ですが、フランスでは "12.50 $" と表記されます (小数点と通貨記号の位置が異なります)。通貨記号を変更するためだけに、このカルチャに適した書式設定を失いたくありません。良いニュースは、次のコードが示すように、その必要がないことです。
var cultureInfo = Thread.CurrentThread.CurrentCulture; // You can also hardcode the culture, e.g. var cultureInfo = new CultureInfo("fr-FR"), but then you lose culture-specific formatting such as decimal point (. or ,) or the position of the currency symbol (before or after)
var numberFormatInfo = (NumberFormatInfo)cultureInfo.NumberFormat.Clone();
numberFormatInfo.CurrencySymbol = "€"; // Replace with "$" or "£" or whatever you need
var price = 12.3m;
var formattedPrice = price.ToString("C", numberFormatInfo); // Output: "€ 12.30" if the CurrentCulture is "en-US", "12,30 €" if the CurrentCulture is "fr-FR".
IFormatProvider を提供する必要があります。
@String.Format(new CultureInfo("en-US"), "{0:C}", @price)
個人的には、文化固有のコードを使用することに反対です。次のことをお勧めします。
@String.Format(CultureInfo.CurrentCulture, "{0:C}", @price)
そしてあなたのweb.configで次のことを行います:
<system.web>
<globalization culture="en-GB" uiCulture="en-US" />
</system.web>
追加情報: https://msdn.microsoft.com/en-us/library/syy068tk(v=vs.90).aspx
かみそりの場合は、文化、価値を使用できます
@String.Format(new CultureInfo("sv-SE"), @Model.value)
decimal value = 0.00M;
value = Convert.ToDecimal(12345.12345);
Console.WriteLine(".ToString(\"C\") Formates With Currency $ Sign");
Console.WriteLine(value.ToString("C"));
//OutPut : $12345.12
Console.WriteLine(value.ToString("C1"));
//OutPut : $12345.1
Console.WriteLine(value.ToString("C2"));
//OutPut : $12345.12
Console.WriteLine(value.ToString("C3"));
//OutPut : $12345.123
Console.WriteLine(value.ToString("C4"));
//OutPut : $12345.1234
Console.WriteLine(value.ToString("C5"));
//OutPut : $12345.12345
Console.WriteLine(value.ToString("C6"));
//OutPut : $12345.123450
Console.WriteLine();
Console.WriteLine(".ToString(\"F\") Formates With out Currency Sign");
Console.WriteLine(value.ToString("F"));
//OutPut : 12345.12
Console.WriteLine(value.ToString("F1"));
//OutPut : 12345.1
Console.WriteLine(value.ToString("F2"));
//OutPut : 12345.12
Console.WriteLine(value.ToString("F3"));
//OutPut : 12345.123
Console.WriteLine(value.ToString("F4"));
//OutPut : 12345.1234
Console.WriteLine(value.ToString("F5"));
//OutPut : 12345.12345
Console.WriteLine(value.ToString("F6"));
//OutPut : 12345.123450
Console.Read();