Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我注意到下面的句子
echo | awk '{OFMT="%.16e";CONVFMT="%.16e";print 10.-0.1*011}'
给出 9.0999999999999996e+00
和这个
echo | awk '{OFMT="%.16e";CONVFMT="%.16e";print 10.-0.1*11}'
给出 8.9000000000000004e+00
注意 11 左侧的零。这个结果差异可以吗?
谢谢
这是因为011被解析为八进制值。如果你这样做
011
$ echo | awk '{OFMT="%.16e";CONVFMT="%.16e";print 10.-0.1*9}' 9.0999999999999996e+00
你得到相同的结果,因为十进制的 9 是八进制的 011