引用
引用第3樓grrrmeng于2017-06-02 15:29發(fā)表的 :
OK 問(wèn)題已經(jīng)找到了 原來(lái)是浮點(diǎn)乘法的時(shí)候 使用常數 他本身不能夠變?yōu)楦↑c(diǎn)。增加了一部賦值就好了 謝謝 謝謝
原因并不是本身不能夠變成浮點(diǎn),而是浮點(diǎn)數在內存中排列與有符號數不同。
你可以對一個(gè)32位數進(jìn)行隨意賦值一個(gè)不為0的常數,最終都能出現浮點(diǎn)數。
出現你目前的原因是:
因為你將一個(gè)常數賦予浮點(diǎn)數,也可以認為你將一個(gè)常數給了一個(gè)32位存儲空間,而這個(gè)常數在32位存儲空間中排列所得到的浮點(diǎn)數是一個(gè)很小的值。
由于這個(gè)值非常小,導致乘法結果是一個(gè)小數,最終導致一個(gè)小數被轉化指令轉化為0了。
這才是導致你認為FIX沒(méi)有執行的真正原因,因此,如果你希望在這個(gè)領(lǐng)域水平有所提高的話(huà),你還是需要去看IEEE754浮點(diǎn)數的相關(guān)內容,特別是浮點(diǎn)數在內存中的排列格式。
Good Luck~