4

重複の可能性:
実数-floatまたはdoubleのどちらが必要かを判断する方法は?

doubleからfloatに変換すると、精度が低下するかどうかを確認しようとしています。明らかに、変換を実行してフロートをdoubleに変換し直し、元の値と比較することができます。もっと直接的な方法があるかどうか知りたいです。

4

2 に答える 2

9

フロートとバックへの変換は、一般的に最も効率的なソリューションです。ほとんどの一般的なアーキテクチャでは、必要な命令は2つだけで、レイテンシはそれぞれ2、3サイクルです。これには、シンプルで正しいという利点もあります。

浮動小数点のハードウェアサポートがないプラットフォームでは、数値を分解し、指数と仮数が単精度に適合するかどうかをチェックすることで、より効率的にチェックを行うことができますが、これは比較的まれなコーナーケースです。これはエラーが発生しやすく、さまざまなFP形式を使用するプラットフォームに移植できません。

于 2013-01-08T14:31:59.170 に答える
0

浮動小数点数には、仮数と指数の2つの部分があります。ダブルには、両方の部分に割り当てられたより多くのビットがあります。浮動小数点数にdoubleを割り当てると、仮数ビットがドロップされ、予想される精度の桁数が少なくなります。ただし、二重指数がfloat指数に収まらない場合、floatはガベージ値になります。

于 2013-01-08T15:14:27.287 に答える