У меня проблема с базовыми типами.
#include<stdio.h> int main() { printf("%.22f",0.30); return 1; }
Вывод, который я получаю, составляет 0,2999999999999999888978
Почему 0,3 конвертируется в меньшее значение
Любая помощь высоко ценится
Nandish
Это потому, что 0.30 не может быть точно представлено в двоичной форме с плавающей точкой. Внутри может быть сохранено только приближение к 0.30. Поэтому, когда вы распечатываете все это, вы получите немного другое число.
0.30
http://en.wikipedia.org/wiki/Floating_point