w= torch.tensor([[1.1,2.2,3.4],
[2.56,4.54,6.23],
[7.78,8.45,9.98]],dtype=torch.float32)
# 将tensor转换为Python数值对象并格式化为小数点后6位
torch.set_printoptions(precision=20)
print(w)
输出:tensor([[1.10000002384185791016, 2.20000004768371582031, 3.40000009536743164062],
[2.55999994277954101562, 4.53999996185302734375, 6.23000001907348632812],
[7.78000020980834960938, 8.44999980926513671875, 9.97999954223632812500]])
都说torch.float32 用23位表示小数,精确到小数点后6位。可是我怎么能打印出20位小数?问chatgpt无果,特请教大牛。
设置成 torch.set_printoptions(precision=30)
输出:tensor([[1.100000023841857910156250000000, 2.200000047683715820312500000000,
3.400000095367431640625000000000],
[2.559999942779541015625000000000, 4.539999961853027343750000000000,
6.230000019073486328125000000000],
[7.780000209808349609375000000000, 8.449999809265136718750000000000,
9.979999542236328125000000000000]])
最少后面7个0,似乎不管什么小数,都可以精确到小数点后23位啊(30-7,十进制)
哪位大佬能讲讲这其中的缘由?谢谢
--
FROM 120.242.238.*