Как получается, что и float, и double могут хранить одинаковое количество десятичных знаков в C?
Это и есть код. (С)
float f = 3.1415926535897932384626433832795; double d = 3.1415926535897932384626433832795; printf("float = %.20f \n", f); printf("double = %.20f \n", d);
Согласно статье в Википедии, double имеет точность в 2 раза большую, чем float. Но результат, который я получаю, таков.
float = 3.14159274101257320000 double = 3.14159265358979310000
Нет большой разницы между float и double, за исключением того, что double округлил последнюю цифру.
Как это возможно, если float имеет только 7-значную точность ?
Что я уже пробовал:
float f = 3.1415926535897932384626433832795; double d = 3.1415926535897932384626433832795; printf("float = %.20f \n", f); printf("double = %.20f \n", d);