簡體   English   中英

如何格式化雙倍貨幣四舍五入到最接近的美元?

[英]How do I format a double to currency rounded to the nearest dollar?

現在我有

double numba = 5212.6312
String.Format("{0:C}", Convert.ToInt32(numba) )

這會給我

$5,213.00

但我不想要“.00”。

我知道我每次都可以刪除字符串的最后三個字符來實現效果,但似乎應該有一個更簡單的方法。

首先 - 不要將貨幣保持在double - 而是使用decimal 每次。 然后使用“C0”作為格式說明符:

decimal numba = 5212.6312M;
string s = numba.ToString("C0");

這應該做的工作:

String.Format("{0:C0}", Convert.ToInt32(numba))

C后面的數字指定要包含的小數位數。

我懷疑你確實想要使用decimal類型來存儲這些數字。

Console.WriteLine(numba.ToString("C0"));

我認為實現目標的正確方法是:

Thread.CurrentThread.CurrentCulture.NumberFormat.CurrencyDecimalDigits = 0;

然后才應該執行Format調用:

String.Format("{0:C0}", numba) 
 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.1235
        Console.WriteLine(value.ToString("C5"));
        //OutPut : $12345.12345
        Console.WriteLine(value.ToString("C6"));
        //OutPut : $12345.123450

單擊以查看Console Out Put屏幕

希望這可以幫助你......

謝謝。 :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM