首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> 關於C#

C# 隱式數值轉換完整對照表:從低精度到高精度的安全擴展

     編輯:關於C#

隱式數值轉換的核心原則

隱式數值轉換本質上是從低精度/小範圍類型向高精度/大範圍類型的安全擴展。編譯器保證不會遺失資訊(極少數情況可能損失精度但不會改變數量級)。

完整隱式數值轉換對照表

來源類型目標類型
sbyteshort, int, long, float, double, decimal
byteshort, ushort, int, uint, long, ulong, float, double, decimal
shortint, long, float, double, decimal
ushortint, uint, long, ulong, float, double, decimal
intlong, float, double, decimal
uintlong, ulong, float, double, decimal
longfloat, double, decimal
ulongfloat, double, decimal
charushort, int, uint, long, ulong, float, double, decimal
floatdouble

特殊精度損失說明

  • int/uint/long → float:可能損失精度(float 只有 7 位有效數字),但不會改變數量級。
  • long → double:同樣可能損失精度,但數量級保持。
  • 其餘轉換完全無資訊遺失。

重要提醒:不存在轉換到 char 的隱式轉換

其他整數類型不能自動轉換為 char,這點需特別注意。

程式範例:隱式轉換鏈與邊界

byte x = 16;
ushort y = x;      // 隱式:byte → ushort
y = 65535;         // ushort 最大值
float z = y;       // 隱式:ushort → float
// 輸出:x=16, y=16, y=65535, z=65535

// y = y + 1;      // 編譯錯誤:y+1 為 int,無隱式轉換至 ushort
// 錯誤訊息:cannot implicitly convert type 'int' to type 'ushort'

當 ushort 最大值 65535 加 1 變為 65536(int)時,無法隱式存回 ushort,必須顯式轉換。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved