次のことについて疑問に思っています: float を入力として受け取り、計算後に float を返すメソッドがあります。計算には、足し算、割り算、対数、累乗などのようなものが含まれる場合があります。そうしている間、中間結果を数回保存する必要があります。このようなクレイジーなもの:
float performSomeComputations(float value)
{
// addition, substraction, logarithms, multiplication, etcetera
float a = value * 12.0;
float b = math.pow(a, 34.0);
float c = math.log10(b + value - 567);
return a + b + c;
}
私の質問は次のとおりです。中間結果をどのように保存するかは重要ですか? すなわちとしてfloat
またはとしてdouble
?中間値が最小値および/または最大値を超えないと仮定しましょう。明らかに差が生じます。しかし、型が使用された場合、戻り値はより正確にdouble
なりますか、または最終的に にキャストされた後、常にまったく同じ答えが得られfloat
ますか? また、プログラミング言語ごとに答えが異なる可能性はありますか?