6,5 имеет конечное двоичное представление: 110,1
Любой плавающий тип, содержащий не менее 4 значащих бит, может идеально представлять это число.
110.100000000000000000000 (с плавающей точкой)
= 6,5
110.10000000000000000000000000000000000000000000000000 (двойной)
= 6,5
3.2, с другой стороны, имеет бесконечное двоичное представление: 101.0011001100110011 ...
float и double не имеют бесконечной точности и, следовательно, могут только приближаться к этому числу: (
101.001100110011001100110 (плавание)
= 3.2000000476837158203125
101.00110011001100110011001100110011001100110011001101 (двойной)
= 3.20000000000000017763568394002504646778106689453125
Как вы можете ясно видеть, эти цифры не совпадают!