nop*_*ole 0 floating-point integer
用PHP
echo (int) ( (0.1+0.7) * 10 );
Run Code Online (Sandbox Code Playgroud)
或者在Ruby中
p ((0.1+0.7) *10).to_i
Run Code Online (Sandbox Code Playgroud)
结果是7而不是8.可能真的很难抓住这些陷阱.我认为,如果在北美,它不是一个问题,因为我们计算价格高达多少美分,所以17.28美元或17.29美元可能不是一个问题.但在中国或香港这样的国家,价格可能只是一个整数.在这种情况下,如果我们的程序很慷慨,只是询问客户价格的整数部分,那么如果8变为7就会出现问题.所以也许我们总是需要小心并使用round()代替?任何其他方法避免这个陷阱?