Convert.ToInt32小数为什么会异常

2019-12-30 11:54:15丽君
引用 13 楼 dancingbit 的回复:
引用 11 楼 hyx972 的回复:
引用 9 楼 mohugomohu 的回复:
难道你认为"0.1"是整数吗?
我的理解,不知道对不对:
Convert.ToInt32 强制转换,无论源数据是否是整形,只要他是数值就可以了。
明显不对,ToInt32要求被转换的字符串要符合整数的形式的。
+1 ------其他回答(1分)---------
引用 15 楼 peter200694013 的回复:
引用 13 楼 dancingbit 的回复:
引用 11 楼 hyx972 的回复:
引用 9 楼 mohugomohu 的回复:
难道你认为"0.1"是整数吗?
我的理解,不知道对不对:
Convert.ToInt32 强制转换,无论源数据是否是整形,只要他是数值就可以了。
明显不对,ToInt32要求被转换的字符串要符合整数的形式的。
+1
你的理解,顶个屁用.人家MS就是这样规定的. ------其他回答(1分)--------- 改个转换的方式吧 ------其他回答(1分)---------
引用 4 楼 hyx972 的回复:
我想知道为什么 Convert.ToInt32("0.1")会产生异常?
难道.Net框架下提供那么多的重载的方法都是忽悠人的?
你这个参数是字符串吧? ------其他回答(1分)--------- 是字符串的话就会报错, ------其他回答(1分)--------- .....
有小数的东西。。你非得拿整型转。。 ------其他回答(1分)--------- 用(int)转换吧 ------其他回答(1分)--------- csdn神奇的人真多 ------其他回答(1分)--------- 是啊 0.1明显不是整形啊 ------其他回答(1分)--------- 有小数当然不能用int类型了 用double ------其他回答(2分)--------- 先转decimal,然后Math.Floor() ------其他回答(1分)--------- 小数的"."
不符合整数格式
int a = Convert.ToDouble("0.1");
这样就好了 ------其他回答(2分)--------- LZ先把字符串转换为Double类型再转为Int32就没问题了,原因是如果像LZ那样转的话,会是被认为由字符串转为整形,当有小数点时就会出错了,如果先转换为Double类型的话就会以数值类型来处理。如:Int32 i = Convert.ToInt32(Convert.ToDouble("1.1"));这样就可以通过了 ------其他回答(1分)--------- 这个不神奇,一个是decimal的转换为int,这个可以的;