码迷,mamicode.com
首页 > Web开发 > 详细

PHP中float变量转换为int时,结果有误的问题!

时间:2015-01-13 14:08:43      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:

先上例子:

<?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时,结果有误的问题!

标签:

原文地址:http://www.cnblogs.com/webStyle/p/4221015.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!