Почему переменная float сохраняет значение, вырезая цифры после точки странным образом?

У меня есть эта простая строка кода:

float val = 123456.123456;

когда я печатаю этот val или смотрю в область видимости, он сохраняет значение 123456.13

Хорошо, все в порядке, он не может хранить все эти цифры после точки всего в 4 байтах, но почему после точки остается 13? Разве это не должно быть 12?

(с использованием vc ++ 2010 Express на win32)

9
задан LihO 17 October 2013 в 19:31
поделиться