Hello,
I found that:
a = torch.ones(1, dtype=torch.float) * 2047
a + 0.0001
>> tensor([2047.0001])

It seems that 2048 is a boundary, I think it must related to the floating point expression in binary format, it clips the significand part that causes the precision loss (if I am wrong, correct me please).
But I cannot get the accurate idea. Does anyone have accurate explanations?