Решением этой проблемы может быть изменение типов данных.Даже если double
работает так же, как и float
, аппроксимируя большой диапазон действительных чисел конечным набором рациональных чисел, двойники настолько близки друг к другу, что ошибка округления будет иметь меньшее значение.
Например, значения float
, наиболее близкие к действительному числу 80.123456, составляют 80.12345123291015625 и 80.1234588623046875.В double
значениях близких к 80.123456 являются 80,123456000000004451067070476710796356201171875 и 80,1234559999999902402123552747070789337158203125.
1008 *
float
действительно имеет свои преимущества, в ситуациях, в которых вы имеете дело с очень большими наборами очень низких цифр точности, но
double
являетсяболее общий полезный тип.При вводе физической величины в программу с использованием
double
ошибка измерения будет превышать ошибку округления.