次のように負の通貨をフォーマットする必要があります。$(10.00)
使用しようとしましstring.Format("{0:C}", itemprice)
たが、この結果が得られます($10.00)
(括弧内の$
私も試しました
string fmt = "##;(##)";
itemprice.ToString(fmt);
でも以前と同じです($10.00)
このような結果を得る方法に関するアイデア:$(10.00)
。
次のように負の通貨をフォーマットする必要があります。$(10.00)
使用しようとしましstring.Format("{0:C}", itemprice)
たが、この結果が得られます($10.00)
(括弧内の$
私も試しました
string fmt = "##;(##)";
itemprice.ToString(fmt);
でも以前と同じです($10.00)
このような結果を得る方法に関するアイデア:$(10.00)
。
itemPrice.ToString(@"$#,##0.00;$\(#,##0.00\)");
動作するはずです。PowerShellでテストしました。
PS C:\Users\Jcl> $teststring = "{0:$#,##0.00;$\(#,##0.00\)}"
PS C:\Users\Jcl> $teststring -f 2
$2,00
PS C:\Users\Jcl> $teststring -f -2
$(2,00)
それはあなたが望むものですか?
Jclのソリューションを使用して、それを優れた拡張機能にします。
public static string ToMoney(this object o)
{
return o.toString("$#,##0.00;$\(#,##0.00\)");
}
次に、それを呼び出します。
string x = itemPrice.ToMoney();
または別の非常に単純な実装:
public static string ToMoney(this object o)
{
// note: this is obviously only good for USD
return string.Forma("{0:C}", o).Replace("($","$(");
}
これは非標準のフォーマットであるため、手動で分割する必要があります。
string.Format("{0}{1:n2}", System.Globalization.CultureInfo.CurrentCulture.NumberFormat.CurrencySymbol, itemprice);