C#中(int)、Conver.Toint32()、int.Parse()三种类型转换方式的区别

将字符串转换为日期
string value= "2009-11-25"
DateTime dt= Convert.ToDateTime(value);
日期转换为字符串(2009,11,25 )
string s = dt.ToString("yyyy,mm,dd");

如何将string 转换为 decimal

decimal d=decimal.Parse(str);
decimal d=Convert.ToDecimal("string");

String类型小数值转换为Long类型

数值分为小数和整数,当传入的类型为String,需要获取的类型为Long,这时候直接通过Long.valueOf()可以实现,但是当传入的String类型是小数值得时候(如传入的是金额数值:"29.90",注意:金额数值经常进行乘以100后再往下执行业务逻辑:)就会出现
异常java.lang.NumberFormatException: For input string: "29.90",解决方案如下:

(对于多位小数的数值转化为long的时候需要先将其进行转换成整数过渡处理)
 

        String orderAmount = "29.90";
        Number num = Float.parseFloat(orderAmount) * 100;
        int oamount = num.intValue();
        long _cost = Long.valueOf(oamount);

C#中(int)、Conver.Toint32()、int.Parse()三种类型转换方式的区别与联系

1、(int)可用于单精度、双精度等其他数值类型的转换(到整型int),不能用于转换string类型,例如:
  这里用(int)转换string是不可以的,系统会报错,程序是不能运行。

        string myString = "520";
        int myint;
        myint = (int) myString;
        Console.WriteLine(myint);

下面例子是转换单精度类型float,这是可以的

        int x;
        float y = 1.2f;
        x = (int) y;
        Console.WriteLine(x);
        Console.ReadKey();

使用(int):Double或Float被转换成int类型,小数部分不进行四舍五入,结果是取整的

        //double转换为int,使用Convert.ToInt32()
        double myInt = 1.6;
        string myString = "123.45";
        //string myString="abcd";
        //string myString = "12345";
        int intResult;
        string stringResult;
        intResult = (int) myInt;
        Console.WriteLine(intResult);
        Console.Read();

2、Convert.ToInt32() 可以转换字符串类型,但是字符串里的内容必须是"123456"这种,即:里面是整型数值类型的。不能是"123.456"(可认为里面是小数的)或者"abcdef"。也可转换值类型,如Double和Float。
  字符串为"123.45",系统会报错:

        int myInt;
        string myString = "123.45";
        //string myString="abcd";
        //string myString = "12345";
        int intResult;
        string stringResult;
        intResult = Convert.ToInt32(myString);
        Console.WriteLine(intResult);
        Console.Read();

使用Convert.ToInt32():double或float被转换为int,小数部分可以是四舍五入的。规则是:整数位如果是:0-4:直接舍掉小数位。若数值为5.6,规则是:整数位如果为5,要返回临近偶数()结果是6  整数位为6-9是,都要进位。

        //double转换为int,使用Convert.ToInt32()
        double myInt = 1.6;
        string myString = "123.45";
        //string myString="abcd";
        //string myString = "12345";
        int intResult;
        string stringResult;
        intResult =Convert.ToInt32(myInt);
        Console.WriteLine(intResult);
        Console.Read();

3、int.Parse()在只能转换string类型,不能是其他,例如double到int这些数值类型是不可以的。另外,在转换string时,和Convert.ToInt32() 同,字符串里的内容必须是"123456"这种,即:里面是整型数值类型的。不能是"123.456"(可认为里面是小数的)或者"abcdef"。

        int myInt;
        //string myString = "123.45";
        //string myString="abcd";
        string myString = "12345";
        int intResult;
        string stringResult;
        intResult = int.Parse(myString);
        Console.WriteLine(intResult);
        Console.Read();

double-->int不行

        //double转换为int,使用Convert.ToInt32()
        double myInt = 1.6;
        string myString = "123.45";
        //string myString="abcd";
        //string myString = "12345";
        int intResult;
        string stringResult;
        intResult = int.Parse(myInt);
        Console.WriteLine(intResult);
        Console.Read();

4、Conver.ToInt32()可以将string=null转换为0,而(int)、int.Parse()不能对空字符串进行转换,实例:

        String myString = null;
        String resultString;
        int myInt;
        // myInt = (int)myString;//不能转换null
        myInt = Convert.ToInt32(myString);//将null转换为0
        // myInt = int.Parse(myString);//不能转换null
        Console.WriteLine(myInt);
        Console.Read();

5、int类型转换为string 类型,使用强制类型转换符,可用Convert.ToString()去转换

        //强制括号转换只能转换数值类型的
        int myInt = 3;
        string stringResult;
        stringResult=(string) myInt;
        Console.Read();
        //强制括号转换只能转换数值类型的
        int myInt = 333;
        string stringResult;
        //stringResult = Convert.ToString(myInt);
        stringResult = myInt.ToString();
        Console.WriteLine(stringResult);
        Console.Read();

Convert.ToInt32()和int.Parse()的区别

(1) 
Convert.ToInt32(null)会返回0而不会报异常,但int.Parse(null)则会产生异常

(2) 
Convert.ToInt32(“”)和int.Parse(“”)都会产生异常,两个方法的参数不能为空字符串。

(3)

a. Convert.ToInt32(double value) 
如果 value 为两个整数中间的数字,则返回二者中的偶数;即 3.5转换为4,4.5 转换为 4,而 5.5 转换为 6。 不过4.6可以转换为5,4.4转换为4 
b. int.Parse(“4.5”) 
直接报错:”输入字符串的格式不正确”.

c. int(4.6) = 4 
Int转化其他数值类型为Int时没有四舍五入,强制转换

Convert.ToInt32()的参数有很多个,而int.Parse()的参数只能是string类型的。Parse就是把string转换为int,double,char 等等。*.Parse(string)括号中一定要是string类型的。
 

猜你喜欢

转载自blog.csdn.net/zgscwxd/article/details/86675645