Чудя се за следното: Имам метод, който приема 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
? И възможно ли е отговорът да варира според езика за програмиране?