1. 程式人生 > 實用技巧 >sql server 給已存在的表修改欄位

sql server 給已存在的表修改欄位

資料型別轉換分為強制轉換自動轉換

在低位向高位轉換時是自動轉換

在高位向低位轉換時是需要強制轉換

byte 1位元組 --> short char 2位元組 -->int 4位元組 -->long 8位元組-->float 4位元組

強制轉換時,需要注意一些問題:

  1. 轉換時,資料可能會溢位
  2. 浮點數轉換成整數型時,會出現精度問題
  3. 浮點數範圍大於整形,浮點數是1bit符號位,8位指數位,23位尾數位,指數位決定了範圍,尾數位決定精度。整形1bit符號位,31位實際數字。
		int i=128;
        byte b = (byte)i;//高位向低位轉換,溢位
        System.out.println(b);//-128
        double d =i;//直接賦值
        System.out.println(d);//輸出
        System.out.println((int)23.5F);//強轉int,忽略小數點後面的,23
        System.out.println((int)-23.5);//強轉int(double),忽略小數點後面的,-23
        System.out.println("=========================================");
        char c = 'a';
        int i2 = c+1;
        System.out.println(i2);//98
        System.out.println((char)i2);//a 後面是 b
        System.out.println("=========================================");
        int money = 10_0000_0000;//JDK7中的新特性,C#中也有類似的特性,方便數位數了
        int year = 20;
        int total = money * year;
        System.out.println(total);//溢位-1474836480,成負數了
        long total2 = money * year;
        System.out.println(total2);//溢位-1474836480計算時,已經出現問題了,結果用long接受,也是那個負值
        long total3 = (long)money* year;
        System.out.println(total3);//正確 20000000000計算時,將一個數字轉換成long,整體自動都變成long,最後結果就對了