sql server 給已存在的表修改欄位
阿新 • • 發佈:2020-11-03
資料型別轉換分為強制轉換和自動轉換
在低位向高位轉換時是自動轉換
在高位向低位轉換時是需要強制轉換
byte 1位元組 --> short char 2位元組 -->int 4位元組 -->long 8位元組-->float 4位元組
強制轉換時,需要注意一些問題:
- 轉換時,資料可能會溢位
- 浮點數轉換成整數型時,會出現精度問題
- 浮點數範圍大於整形,浮點數是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,最後結果就對了