考慮浮點數,如何實現跨平台數值穩定的漫遊 尋路演算法?

時間 2021-05-31 21:33:34

1樓:

降低精度。 不是需要物理運算的遊戲,位置只要保證小數點後 1位到2位就夠用了,角度直接用整數也夠用了。建議直接轉成整數。

2樓:Milo Yip

3樓:

蟹妖,給你乙個思路,我們以前就是這麼幹的,就是確定浮點數精度的位數(比如,保留4位精度,就*10000),然後把浮點數轉換為整數(int64或者int,視最大值來定),不同裝置、系統上採用整數來傳遞、計算,只有在必要的的時候,才區域性轉換為浮點數用,一般遊戲的浮點數同步精度要求都不高,只是避免累計誤差而已。

效果很好。

浮點數如何轉換為定點數?

Aman 按 IEEE754 標準,float 的格式是 binary32,double 的格式是 binary64,浮點數中的有效數字 significant 部分其實可以理解為是乙個定點數,只不過有指數 exponent 部分做了小數點偏移 類似科學計數法,只不過是二進位制的,浮點數因此得名 我...

浮點數是如何計算hash的?

hash的本質是對二進位制串進行操作,只要有一位不同hash結果就差千萬里。那麼,你的問題就是先把相近的值用相同的二進位制串表達,然後去計算hash。具體怎麼定義相近,就由你自己實現。最簡單的辦法就是用吧。這裡的公式編輯器不支援分數麼? 如何保證被看做相等的兩個數值非常接近的浮點數hash到相同的值...

浮點數和字串相互轉換,哪種演算法實現起來比較容易?

豬大毛 float a 0.111 printf f fl main txt File f fopen txt Read f 邵老師 浮點數分成整數和小數兩個部分,分別進行單獨處理,最後和小數點符號合成乙個字串。include include using namespace std string G...