2016-01-22 6 views
5

私は浮動小数点を必要とするもののカジュアルな使用がfloatタイプ(C/C++)を使用すると宣言されているコードを書く人もいます。これは、宇宙が重要な行列ではなく、SIMDなどのものにもっと適合させようとするものではありません。値をパーセントでスケーリングする、または数量間で比率を求めることはほとんどありません。カジュアルな1回の計算で `float`対` double`ですか?

私はいつもdoubleを使用していましたが、floatはスペースが本当に重要だったと考えられます。私は、デスクトップCPUが浮動小数点ハードウェアを持たず、ソフトウェアライブラリの性能について何か言われるかもしれない時代を思い出しますが、最初の287コプロセッサではネイティブ精度は80ビットでした。floatは、値をRAMまたはファイルに長期保存することはできず、計算速度には影響しませんでした。

今日、ではなくfloatをこのような習慣的な方法で使用する理由はありますか?状況1:PC/Macハードウェア固有。状況2:デスクトップや携帯電話などのモバイルデバイスにも使用できるポータブルコード。

覚えている方法を教えてください。floatdoubleが正常です。、またはC++プログラマがどこでもfloatを使用していて、一見(私のPOVに)doubleが存在しないことを知りたいと思っていたのですか?

私の質問は言語に固有のものではありませんが、私の用語はfloatは4バイト、doubleは8バイトです。

+0

パフォーマンスやPODサイズが気になる場合を除き、ダブルを使用することに同意します。私は同じ理由で人々が「int」よりも「short」を好む時があったと思うが、今はあまり関連性がないと思う。 –

+1

私は一回限りの使用のために性能については重要ではないと思います。 –

+2

関連:http://stackoverflow.com/questions/1074474/should-i-use-double-or-float –

答えて

0

私はin this answerを指摘するように、floatdoubleより速くすることができますが、あなたは、浮動小数点がボトルネックであることを確認していない限り、一般的に、私はdoubleに固執することをお勧めするいくつかの方法があります。 this,thisthisなどの問題も回避できます。

明白な例外は、ハードウェアのサポートが単精度の場合のみです(Cortex M4など)。

+0

パフォーマンスの引数が強い場合でも、floatが良好かどうかを調べるための分析が必要なことを意味します十分な。間違った答えを早く得ることはできません。 –

関連する問題