首页 > 代码库 > PHP中float变量转换为int时,结果有误的问题!
PHP中float变量转换为int时,结果有误的问题!
先上例子:
<?php $money = 100; $rate = 1.15; $result = $money * $rate; var_dump( intval( $result ) ); var_dump( $result );?>
输出结果为:
int(114)
float(115)
为什么会出现这样的现象呢???
其实,PHP的float是一种弱类型变量,在进行运算时,如果参与运算的值有float,那么得到的结果也是float类型的;
如上:本来得到的115,但是,实际上存储的是149.9999999999......
这个时候,你若是将他强制转换为整数,那小数点后面就会丢失了!!!
那如何避免这个精度的问题呢???
要避免这个问题,其实很简单,只要运算的过程中,将参数运算的数用整数来代替,就行了;
<?php $money = 100; $rate = 115; $result = $money * $rate /100; var_dump( intval( $result ) ); var_dump( $result );?>
输出结果为:
int(115)
int(115)
PHP中float变量转换为int时,结果有误的问题!
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。