譬如把float類型的2.0000000000轉(zhuǎn)化為int,底層儲(chǔ)存的應(yīng)該是1.999999999999999這樣的吧,有精度限制的,所以當(dāng)我把這個(gè)數(shù)轉(zhuǎn)int的時(shí)候,覺得會(huì)變成1(丟棄小數(shù)部分了)
但測(cè)試了幾種語言,都還是正確的(php,java,go,js)
php:
js:
#go:
#java:
2.0
是可以被浮點(diǎn)數(shù)精確表達(dá)的 這個(gè)數(shù)字不應(yīng)該出問題
小數(shù)的存儲(chǔ)用科學(xué)記數(shù)法存儲(chǔ),並不是1.999999...,在強(qiáng)轉(zhuǎn)的過程中是做處理的,不是直接轉(zhuǎn)換個(gè)類型
一般來說都是低精度轉(zhuǎn)高精度,例如int->float,高精度轉(zhuǎn)低精度,是要丟失精度,數(shù)據(jù)結(jié)果可能會(huì)變得很詔異的。
沒啥太實(shí)際的意義,假如真的是你這樣想的情況運(yùn)作的話,設(shè)計(jì)這門語言的人肯定會(huì)考慮到的
具體了解需要一定的彙編原理,所以不要太鑽牛角尖啦