1 回答

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超10個(gè)贊
常量的轉(zhuǎn)換遵循與非常量的轉(zhuǎn)換不同的規(guī)則。
第一個(gè)非常數(shù):
數(shù)值類型之間的轉(zhuǎn)換
對(duì)于非常量數(shù)值的轉(zhuǎn)換,適用以下規(guī)則:
...
將浮點(diǎn)數(shù)轉(zhuǎn)換為整數(shù)時(shí),小數(shù)部分將被丟棄(向零截?cái)啵?/strong>
...
所以這是可能的:
var?f?=?float64(1.333) var?i?=?int(f)
現(xiàn)在常數(shù):
如果 x 可以用 T 的值表示,則常量值 x 可以轉(zhuǎn)換為類型T。
然后,在文檔中,有一個(gè)示例表達(dá)式列表,其中之一是:
int(1.2)?//?illegal:?1.2?cannot?be?represented?as?an?int
論代表性
如果滿足以下條件之一,則常量 x 可由類型 T 的值表示:
x 位于由 T 確定的值集中。
T 是浮點(diǎn)類型,x 可以舍入到 T 的精度而不會(huì)溢出。舍入使用 IEEE 754 舍入到偶數(shù)規(guī)則,但 IEEE 負(fù)零進(jìn)一步簡(jiǎn)化為無符號(hào)零。請(qǐng)注意,常量值永遠(yuǎn)不會(huì)導(dǎo)致 IEEE 負(fù)零、NaN 或無窮大。
T 是復(fù)數(shù)類型,x 的分量 real(x) 和 imag(x) 可通過 T 的分量類型(float32 或 float64)的值表示。
這 3 個(gè)條件都不適用于該表達(dá)式var a int = int(1.333)
,因此它是非法的。
- 1 回答
- 0 關(guān)注
- 169 瀏覽
添加回答
舉報(bào)