私はいくつかの浮動小数点演算を行っており、精度の問題があります。結果の値は、同じ入力の2台のマシンで異なります。投稿を読んだ@フロートを掛けられないのはなぜですか?また、Web上の他の資料を読んで、浮動小数点のバイナリ表現とマシンイプシロンに関係していることを理解しました。ただし、この問題を解決する方法があるかどうかを確認したかった/C++での浮動小数点演算の回避策?? ストレージ用にfloatをunsignedshortに変換し、必要に応じて元に戻しています。ただし、unsigned shortに戻すと、一方のマシンでは精度(小数点以下6桁まで)は正しいままですが、もう一方のマシンでは失敗します。
//convert FLOAT to short
unsigned short sConst = 0xFFFF;
unsigned short shortValue = (unsigned short)(floatValue * sConst);
//Convert SHORT to FLOAT
float floatValue = ((float)shortValue / sConst);