我们都知道 浮点型 不是很精确的,所以在进行类型转化的时候就会出现很多意向不到的问题我使用php给大家用代码说说这事$a = 2.01;
var_dump(sprintf('%.20F', $a * 100));//string(24) "200.99999999999997157829"
var_dump( intval( $a * 100) );//int(200)上面的结果很出人意料吧,2.01 * 100 应该是201吧,居然是200.99999999.... 这样就可以解释 为什么 后面的转化成整形变成200了如何解决这种问题了? float => int 之前先使用round$a = 2.01;
var_dump(sprintf('%.20F'