doupeizheng3918 2014-04-22 10:00
浏览 79

在PHP中计算数字时的奇怪行为

When i run the following PHP Script which is just calculating the discount of 30% from 11.5. I'll get some strange result. Normally i would expect the condition to be false when testing the calculated result. But instead i get true.

Whats wrong with php in this case?

<?php
$_discount = 30;
$_price = 11.5;
$_qty = 1;

echo $_result = ((1-$_discount / 100) * $_price); // the result is 8.05 
echo $_result; // prints 8.05;
echo gettype($_result); // prints double

echo $_result !== 8.05; // returns 1 instead of 0
?>
  • 写回答

1条回答 默认 最新

  • douyi8408 2014-04-22 10:02
    关注

    Try to use this:

    <?php
    $_discount = 30;
    $_price = 11.5;
    $_qty = 1;
    
    echo $_result = ((1-$_discount / 100) * $_price); // the result is 8.05 
    echo $_result; // prints 8.05;
    echo gettype($_result); // prints double
    
    echo (double)$_result !== 8.05;
    ?>
    
    评论

报告相同问题?

悬赏问题

  • ¥15 孟德尔随机化结果不一致
  • ¥20 求用stm32f103c6t6在lcd1206上显示Door is open和password:
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法