日期:2014-05-18  浏览次数:21004 次

string型的“600.000”怎么转换为int型?
为什么我用int。parse不能转换?

------解决方案--------------------
int.Parse("600.000".Split('.')[0])
------解决方案--------------------
600.000看成整数,你需要找下这个格式是哪个地区的
或者Repalce(".","")

正确的方法

System.Globalization.NumberFormatInfo nfi = new System.Globalization.NumberFormatInfo();
nfi.NumberGroupSeparator = ".";
int x = int.Parse("600.000", System.Globalization.NumberStyles.AllowThousands, nfi);
------解决方案--------------------
这样可能比较通用些吧:
C# code
        string s = "600.000";
        int r = (int)double.Parse(s);
        Response.Write(r);

------解决方案--------------------

字符串转化成别的类型,你首先要确认它是否是转化类型的有效形式

字符串"600.00"明显就不是一个int类型的有效形式,但是double的有效形式,所以可以选double再转int

 string str = "600.000";
 int i = Convert.ToInt32(Convert.ToDouble(str));
------解决方案--------------------
600.000可以看成整数类型的。它的意思可能是600000,其中的.只是千位分隔符

有的国家的整数写成这样的12,345,666 这种写法也是整数
参见
C# 解析任意格式的数字字符串
http://dotnet.aspx.cc/file/C-Sharp-Parse-Custorm-Format-Number.aspx
------解决方案--------------------
都有见解,如果你要取的数的点号是小数点 那就按照先转换成double再转int好了。但是如果是千分计数的话就把点号替换之后再处理