2013-03-07 34 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); 
相关问题