C#将字符串转换为int(带四舍五入)
将int值“76.10”变成四舍五入为76的最简单方法是什么?C#将字符串转换为int(带四舍五入)
我已经尝试了使用Convert.ToInt32和Decimal的几种不同的方法,但我似乎无法得到它的权利?
编辑:这里是乔恩帮我用代码:
decimal t = Math.Round(decimal.Parse(info.HDDStatus));
int v = (int)t;
最简单的方法是使用Decimal.Parse
解析它,然后Math.Round
(或潜在Math.Floor
取决于你如何要像数字“76.7”被处理)轮流。 然后只需通过转换即可转换为整数。
我会建议使用decimal
而不是double
因为你天生谈论十进制数(因为这是它是如何在文本表示)。
解析的确切方法将取决于文化 - 您希望“76,10”的文本出现在欧洲的上下文中,还是总是使用“。”。作为小数点,例如?
感谢解释它,我已经添加了我正在使用的代码原来的问题,它的作品,但它是最好的方式? – JoeBeez 2010-08-10 09:42:09
@JoeBeez:具体取决于你希望值如何取整,以及你想如何解析它,是的。考虑不同的文化,价值观“76.6”和“76.5”。 – 2010-08-10 09:55:55
转换它加倍第一和使用Math.Floor()
提取子(76)第一个。
string s = "76.7";
int n = int.Parse(s.Substring(0, s.IndexOf('.')));
这也适用于我,谢谢 – JoeBeez 2010-08-10 09:44:02
我敢肯定,这是一种欺骗? - Math.Round是你的答案OP – Gishu 2010-08-10 09:24:03
代码..... – 2010-08-10 09:24:16