給定值= 2或4.00
以下語句輸出字符串貨幣格式,沒有周期(或逗號)
value = Convert.ToDecimal(value).ToString("C2");
值= $ 2.00,或$ 4.00
如果我有值= 1000那麼輸出將是$1,000.00
,但我需要$1000.00
。
我不喜歡字符串連接的「$」和值。
給定值= 2或4.00
以下語句輸出字符串貨幣格式,沒有周期(或逗號)
value = Convert.ToDecimal(value).ToString("C2");
值= $ 2.00,或$ 4.00
如果我有值= 1000那麼輸出將是$1,000.00
,但我需要$1000.00
。
我不喜歡字符串連接的「$」和值。
var stringValue = Convert.ToDecimal(value).ToString("$0.00");
正如下面的@James所指出的,這將貨幣硬編碼爲格式。使用格式C2
將使用系統貨幣格式。這可以針對系統進行更改(例如在Windows 7 - 開始 - 控制面板 - 更改顯示語言 - 附加設置 - 貨幣 - 數字分組中),並允許C2
格式在特定系統上運行時顯示不帶逗號的貨幣值。
編輯
所有信貸@詹姆斯利用當前的文化。我對他的答案的唯一修改是克隆當前的NumberFormat
,以便在刪除CurrencyGroupSeparator
之前獲得當前文化編號格式的所有屬性。
var formatInfo = (NumberFormatInfo)CultureInfo.CurrentCulture.NumberFormat.Clone();
formatInfo.CurrencyGroupSeparator = string.Empty;
var stringValue = Convert.ToDecimal(value).ToString("C", formatInfo);
您應該使用NumberFormat
類指定格式的你需要的類型,ToString
需要一個IFormatProvider
參數例如
var formatInfo = (System.Globalization.NumberFormatInfo)CultureInfo.CurrentCulture.NumberFormat.Clone();
formatInfo.CurrencyGroupSeparator = ""; // remove the group separator
Console.WriteLine(2.ToString("C", formatInfo));
Console.WriteLine(4.ToString("C", formatInfo));
Console.WriteLine(1000.ToString("C", formatInfo));
這將使您的數字格式與您使用的文化保持一致。
+1給你!比我的答案更好的解決方案。 –
也許使用'var formatInfo =(NumberFormatInfo)CultureInfo.CurrentCulture.NumberFormat.Clone();'而不是創建一個新的'NumberFormatInfo'?這樣你將確保你有當前文化的完整數字格式。 –
@Kevin +1是的完整性,這將是一個更好的解決方案。將更新我的答案。 – James
public static class MyExtensions
{
public static string GetMoney(this decimal value, bool displayCurrency = false, bool displayPeriods = true)
{
string ret = string.Format("{0:C}", value).Substring(displayCurrency ? 0 : 1);
if (!displayPeriods)
{
ret = ret.Replace(",", string.Empty);
}
return ret;
}
}
要使用該擴展方法:
decimal test = 40023.2345M;
string myValue = test.GetMoney(displayCurrency:true, displayPeriods:false);`
整數值轉換成$ 0.00包裝格式
int值= 1000; string abc = Convert.ToDecimal(Value).ToString(「$ 0.00」); 輸出將是$ 1000.00
是的就是這樣! 8分鐘後將被接受:) –
雖然它有效,但它不是一個靈活的解決方案,即您將貨幣符號硬編碼爲美元。 – James
有沒有辦法將這個stringValue轉換回數字? – Micro