2010-08-10 46 views
2

将int值“76.10”变成四舍五入为76的最简单方法是什么?C#将字符串转换为int(带四舍五入)

我已经尝试了使用Convert.ToInt32和Decimal的几种不同的方法,但我似乎无法得到它的权利?

编辑:这里是乔恩帮我用代码:

  decimal t = Math.Round(decimal.Parse(info.HDDStatus)); 
      int v = (int)t; 
+0

我敢肯定,这是一种欺骗? - Math.Round是你的答案OP – Gishu 2010-08-10 09:24:03

+0

代码..... – 2010-08-10 09:24:16

回答

5

最简单的方法是使用Decimal.Parse解析它,然后Math.Round(或潜在Math.Floor取决于你如何要像数字“76.7”被处理)轮流。 然后只需通过转换即可转换为整数。

我会建议使用decimal而不是double因为你天生谈论十进制数(因为这是它是如何在文本表示)。

解析的确切方法将取决于文化 - 您希望“76,10”的文本出现在欧洲的上下文中,还是总是使用“。”。作为小数点,例如?

+0

感谢解释它,我已经添加了我正在使用的代码原来的问题,它的作品,但它是最好的方式? – JoeBeez 2010-08-10 09:42:09

+0

@JoeBeez:具体取决于你希望值如何取整,以及你想如何解析它,是的。考虑不同的文化,价值观“76.6”和“76.5”。 – 2010-08-10 09:55:55

2
  1. 转换它加倍第一和使用Math.Floor()

  2. 提取子(76)第一个。

 

string s = "76.7"; 
int n = int.Parse(s.Substring(0, s.IndexOf('.'))); 
+0

这也适用于我,谢谢 – JoeBeez 2010-08-10 09:44:02