Да, это так. Независимо от того, какое представление вы используете, когда код компилируется, число будет преобразовано в уникальное двоичное представление. Существует только один способ представления 2 в стандарте IEEE 754 binary32, который используется на современных компьютерах для представления чисел float.
Ответ 2
Единственное, что должен сказать стандарт C99 в этом вопросе: (раздел 6.4.4.2):
Для десятичных плавающих констант... результат будет либо ближайшее представимое значение, или большее или меньшее представляемое значение немедленно рядом с ближайшим представимым значением, выбранным в соответствии с реализацией.
Этот бит о "определяемом реализацией" означает, что технически реализация могла бы выбрать что-то другое в каждом случае. Хотя на практике ничего странного не произойдет для значения, такого как 2.
Важно помнить, что стандарты C не требуют IEEE-754.