zoukankan      html  css  js  c++  java
  • 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)

  • 相关阅读:
    线程queue
    定时器
    event模拟数据库链接
    最速下降法(梯度下降法)
    神经网络中的反向传播算法
    批量学习和在线学习的区别
    LMS算法
    粒子群算法
    遗传算法
    logistic回归
  • 原文地址:https://www.cnblogs.com/webStyle/p/4221015.html
Copyright © 2011-2022 走看看