2013-03-07 33 views
0

如何格式化小數以轉換爲沒有組分隔符且沒有小數的字符串?如何格式化不帶分隔符和小數位的小數?

例如:「1,234.56」應顯示爲「1234」。

+3

你可以只投到'int'嗎? – 2013-03-07 04:07:31

+0

(讓它顯示爲1235,即向上舍入,相當容易,只是在格式字符串*中截尾*不是)。 – 2013-03-07 04:09:07

回答

4

這幾乎工作,但向上舍:

Decimal d = 1234.56M; 
string s = string.Format("{0:0}", d); 
Console.WriteLine(s); 

輸出:1235

正如@喬恩飛碟雙向建議,你可以強制轉換爲整數類型(假設它是大到足以容納你的最大小數值):

Decimal d = 1234.56M; 
string s = string.Format("{0}", (long)d); 
Console.WriteLine(s); 

輸出:1234

演示:http://ideone.com/U4dcZD

+0

或者如果long參數太小(可疑,但會轉換爲BigInteger)嘿!你永遠不知道!) – joce 2013-03-07 04:23:42

1

如果捨去是很重要的,從Decimal這樣做最安全的方式是Math.Floor

所以:

Decimal d = 3434.99M; 
Console.WriteLine(Math.Floor(d).ToString()); 

會給你:

3434 
1

我不明白你爲什麼不能使用演員。我認爲Int不會顯示逗號(,)。但無論如何,這應該是訣竅:

 float n = 1234.78f; 
     int i = (int)n; 
     String str = i.ToString(); 
     while (str.IndexOf(",",0) >= 0) 
      str = str.Remove(str.IndexOf(",", 0), 1); 
相關問題