本文件已封存並已停止維護。

明確數值轉換表 (C# 參考)

明確數值轉換是在沒有隱含轉換時,使用型別轉換運算式將任何數字型別轉換成其他任何的數字型別。下表顯示這些轉換。

sbyte

byteushortuintulongchar

byte

Sbytechar

short

sbyte byte ushort uint ulong char

ushort

sbyte byte short char

int

sbyte byte short ushort uint ulong char

uint

sbytebyte short ushort int char

long

sbyte byte short ushort int uint ulong char

ulong

sbyte byte short ushort int uint long char

字元

sbytebyte short

float

sbyte byte short ushort int uint long ulong char decimal

double

sbyte byte short ushort int uint long ulong char float decimal

decimal

sbyte byte short ushort int uint long ulong char float double

  • 明確數值轉換可能會遺失小數位數或造成擲回例外狀況。

  • 當您將 decimal 值轉換成整數類資料型別時,這個值會捨入小數點後的數字至零,成為最接近的整數值。如果產生的整數值是在目的型別的範圍外,就會擲回 OverflowException

  • 當您從 doublefloat 值轉換成整數類資料型別時,此值會被截斷。如果產生的整數值超過目的值的範圍,就會根據溢位檢查內容來決定結果。在已檢查內容中,則會擲出 OverflowException,而在未檢查內容中,則會產生目的型別未指定的值。

  • 當您將 double 轉換成 float 時,double 值會捨入為最接近的 float 值。如果 double 值太小或太大而不適用於目的型別,結果將會為零或無限大。

  • 當您將 floatdouble 轉換成 decimal 時,來源值會轉換為 decimal 表示,並捨入至最接近第 28 位小數位置的數字 (如果需要的話)。依據來源值,會發生下列其中一種的結果:

    • 如果來源值太小,無法以 decimal 表示,結果就會變成零。

    • 如果來源值是 NaN (非數字)、無限大或太大,以致無法以 decimal 表示時,就會擲回 OverflowException

  • 當您將 decimal 轉換成 floatdouble 時,decimal 值會捨入為最接近的 doublefloat 值。

如需明確轉換的詳細資訊,請參閱 6.2 C# 語言規格中的 Explicit。如需如何存取規格的詳細資訊,請參閱 C# 語言規格

顯示: