我有一些來自外部服務的小數據。我需要的數據格式爲2位小數,因爲它是代表金錢,但如果我使用標準的C畫幅,我查房次數:使用貨幣字符串格式時防止小數點四捨五入
var x = 42.999m;
var y = string.Format("{0:C}", x);
這導致含£43.00年。我怎麼能把它湊到42.99英鎊呢?
(注意:this question是不一樣的)
我有一些來自外部服務的小數據。我需要的數據格式爲2位小數,因爲它是代表金錢,但如果我使用標準的C畫幅,我查房次數:使用貨幣字符串格式時防止小數點四捨五入
var x = 42.999m;
var y = string.Format("{0:C}", x);
這導致含£43.00年。我怎麼能把它湊到42.99英鎊呢?
(注意:this question是不一樣的)
如果你想使用非默認的舍入策略,你需要做這樣的事情:
var x = 42.999m;
var y = string.Format("{0:C}", Math.Floor(x * 100)/100);
Math.Floor
回合下來;但它不需要小數位數,所以你必須強制2位小數行爲。
當然,這個問題已經解決了,但我建議你使用
var y = String.Format("{0:c3}",x);
// "{0:C3}" is for -123.456 ("C3", en-US) -> ($123.456)
感謝。完美的作品。 – 2011-05-18 09:57:05