I don’t think you can have float tensor to capture all of the precision points. You can use the set_printoptions to see why the FloatTensor is not accurate after some points. If you want more precision, use DoubleTensor:
import torch
weight = [1.0000600001, 4.0000900001]
torch.set_printoptions(precision=10)

print(torch.FloatTensor(weight))
print(torch.DoubleTensor(weight))

tensor([1.0000599623, 4.0000901222])
tensor([1.0000600001, 4.0000900001], dtype=torch.float64)