7

次のように負の通貨をフォーマットする必要があります。$(10.00)

使用しようとしましstring.Format("{0:C}", itemprice)たが、この結果が得られます($10.00)(括弧内の$

私も試しました

string fmt = "##;(##)";
itemprice.ToString(fmt);

でも以前と同じです($10.00)

このような結果を得る方法に関するアイデア:$(10.00)

4

3 に答える 3

6
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)

それはあなたが望むものですか?

于 2012-04-26T20:05:35.643 に答える
3

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("($","$(");
}
于 2012-04-26T20:41:59.117 に答える
2

これは非標準のフォーマットであるため、手動で分割する必要があります。

string.Format("{0}{1:n2}", System.Globalization.CultureInfo.CurrentCulture.NumberFormat.CurrencySymbol, itemprice);
于 2012-04-26T20:05:44.060 に答える