PHP算术运算(加法)

Nit*_*ish 1 php

floor( 500 * (1.4 / 100) )给了我6, floor( 500 * 1.4 / 100 )给了我7

任何人都可以帮助我理解PHP算法如何在内部工作.

小智 6

它的工作方式与任何其他语言相同.试试javascript:

    (500*(1.4 / 100)) // this will give you 6.999999999999999
    (500* 1.4 / 100)  // this will give you 7
Run Code Online (Sandbox Code Playgroud)

问题是,PHP有内部设置,告诉他有关显示浮点数的精确度.尝试做类似的事情:

    php > ini_set('precision', 17);
    php > echo ( 500 * (1.4 / 100) );
    6.9999999999999991
    php > echo ( 500 * 1.4 / 100 );
    7
    php >
Run Code Online (Sandbox Code Playgroud)

我假设您已经尝试了上面的代码而没有ini_set(使用默认设置 - 可能是14作为精度),它在两个结果中都返回7:

    php > echo ( 500 * 1.4 / 100 );
    7
    php > echo ( 500 * (1.4 / 100) );
    7
    php >
Run Code Online (Sandbox Code Playgroud)