Краткий ответ: Это только часть определения внутреннего. Так реализовано во всех современных версиях компилятора HLSL.
255.0 в виде 32-разрядного числа с плавающей запятой представляется в двоичном виде как
0100`0011`0111`1111`0000`0000`0000`0000
255.001953 в виде 32-разрядного числа с плавающей точкой на самом деле представляется как 255.001953125, что в двоичном виде:
0100`0011`0111`1111`0000`0000`1000`0000
Это небольшое смещение помогает в определенных случаях, например, в качестве входного значения 0,9999999. Если бы мы использовали 255.0, вы бы получили 254. С 255.001953 вы получите 255. Иначе в большинстве других случаев ответ после преобразования в целое число (с использованием усечения) приводит к тому же самому ответу в любом случае.
Несколько полезных и интересных рассуждений о числах с плавающей точкой здесь