zoukankan      html  css  js  c++  java
  • 四种转换方式:自动,强制,Parse,Convert

    自动类型的转换

           在数据类型兼容的情况下,将1个小范围的变量的值 直接 赋值给 1个大范围类型的变量

             满足自动类型转换的条件:

    1. 两种变量的数据类型兼容, 所有的数值类型之间和char类型之间相互兼容
    2. 目标类型的范围比源类型大

    注:cha类型的数据对应的是ASCII码;变量的一旦声明,它的类型就无法改变.

    总结:自动类型转换做的事情: 就是把源变量的值 拷贝赋值给 目标变量.

     

    强制类型的转换

    背景:.在数据类型兼容的情况下,不能把1个大范围类型的变量的值直接的赋值给1个小范围的类型的变量, 因为有可能会发生溢出的现象:

    不会发生溢出的情况: 大范围变量中的值刚好在小范围的变量之中

    发生溢出的情况: 大范围变量中的值大于了小范围的变量

    So:C#就不会帮转换

            内容:程序员 就是要让 CPU把这个大范围变量中的值 赋值给 小范围的变量. 因为这个时候程序员可以保证不会溢出

           语法:(强制转换的类型)数据;

             强制转换的条件:1). 两种数据类型之间相互兼容. 再次强调 string和数值类型之间不兼容.

                                   2). 目标类型小于源类型

             强制转换做的事情:CPU将大范围变量中的值 强制的拿出来.  强制的赋值给小范围的变量.

           整型之间:  long>int>short>byte      浮点型之间: double>float>decimal

             浮点型的范围总是比整型的大

           将浮点型强制转换为整型,会将小数部分 活生生的 截掉. 直接保留整数部分.不会做四舍五入.

           可以将1个char类型的数据 直接的 赋值给1个int类型的数据,但不能直接把1个int类型的数据赋值给1个char类型的数据 除非做强制转换. 如果这样的话 char类型的变量的值 就是以这个int类型作为ASCII码对应的char数据,.

     

             无论是强制类型转换还是自动类型转换 他们的首要前提是 数据类型兼容.

             强制类型转换还是自动类型转换 他们都是内存级别的转换.

     

    Parse转换:将字符串转换为其他的类型.

             语法: 要将字符串转换为什么类型  就什么类型.Parse(待转换的字符串);

             Parse转换只能将字符串转换为其他的类型.

     

    Convert转换:集前面三种转换于一身并且还有新增的转换.  是1个万能转换.

           语法要将指定的数据转换为什么类型就   Convert.To什么类型(待转换的数据);

             注意细节:int--> Int32    long-> Int64   short-> Int16   float -> Single   bool -> Boolean

                                其他的类型. 直接To就可以.

             和以上几种的区别:

             Convert转换可以做自动类型转换的事情. 效果与自动转换的语法没有任何区,一般不用Convert

             Convert转换可以做强制转换做的事情.

                       强制转换的语法如果溢出  不会报错 只不过结果不是我们想要的.

                       Convert转换 如果溢出  就会报异常.

            将浮点型强制转换的语法 转换为 整型   会截取掉小数部分

                       Convert会做四舍五入.注意小数部分只有大于0.5才会入小于或者等于是不会入的.   

        Convert转换还可以做parse转换做的事情,本质:其实内部就是调用了parse转换

                       区别: 当字符串的值为null的时候 Convert转换返回0   Parse转换报异常.

             将任意的数据转换为 字符串. 调用这个数据的ToString()方法.

  • 相关阅读:
    RHEL6 搭建 keepalived + lvs/DR 集群
    LeetCode 104. Maximum Depth of Binary Tree
    JAVA面试精选【Java基础第二部分】
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    为什么支付宝不怕你欠债?
  • 原文地址:https://www.cnblogs.com/luobin991/p/3771536.html
Copyright © 2011-2022 走看看