double と float の除算の精度と速度に疑問があります。
例えば:
double a;
a=myfun(); //returns a number with lots of decimals
float b=5.0;
double result=a/b;
b が double の場合、結果は変わりますか? double でない場合、計算に時間がかかりますか (double サイズに合わせて float のサイズを変更するため)?
double と float の除算の精度と速度に疑問があります。
例えば:
double a;
a=myfun(); //returns a number with lots of decimals
float b=5.0;
double result=a/b;
b が double の場合、結果は変わりますか? double でない場合、計算に時間がかかりますか (double サイズに合わせて float のサイズを変更するため)?
float から double へ、または double から float への変換の時間差はごくわずかです。
このリンクをチェックしてください。きっと役に立ちます。
b が double の場合、結果は変わりますか?
値は 0.5 なので、結果は変わらないはずです。double は float よりも精度が高いため、異なる値である場合は変更される可能性があります。
double でない場合、計算に時間がかかりますか?
はい、そうです。しかし、float から double に変換する時間は無視できます。
これをやってみましたか?double
とにかく、除算中にb に変換されます。浮動小数点の除算はコストが高く、浮動小数点の除算にかかる時間はわずかに高速です。