PHP算术运算(加法)

PHP算术运算(加法),php,Php,地板(500*(1.4/100))给我6 和 地板(500*1.4/100)给我7 有谁能帮我理解PHP算术在内部是如何工作的。它的工作原理与其他任何语言一样。例如,尝试javascript: (500*(1.4 / 100)) // this will give you 6.999999999999999 (500* 1.4 / 100) // this will give you 7 问题是,PHP有一个内部设置,告诉他显示浮点数的精度。尝试这样做: php &g

地板(500*(1.4/100))
给我6 和
地板(500*1.4/100)
给我7


有谁能帮我理解PHP算术在内部是如何工作的。

它的工作原理与其他任何语言一样。例如,尝试javascript:

    (500*(1.4 / 100)) // this will give you 6.999999999999999
    (500* 1.4 / 100)  // this will give you 7
问题是,PHP有一个内部设置,告诉他显示浮点数的精度。尝试这样做:

    php > ini_set('precision', 17);
    php > echo ( 500 * (1.4 / 100) );
    6.9999999999999991
    php > echo ( 500 * 1.4 / 100 );
    7
    php >
我假设您在没有ini_设置的情况下尝试了上面的代码(使用默认设置–精度可能为14),它在两个结果中都返回了7:

    php > echo ( 500 * 1.4 / 100 );
    7
    php > echo ( 500 * (1.4 / 100) );
    7
    php >

它的工作原理与其他任何语言一样。例如,尝试javascript:

    (500*(1.4 / 100)) // this will give you 6.999999999999999
    (500* 1.4 / 100)  // this will give you 7
问题是,PHP有一个内部设置,告诉他显示浮点数的精度。尝试这样做:

    php > ini_set('precision', 17);
    php > echo ( 500 * (1.4 / 100) );
    6.9999999999999991
    php > echo ( 500 * 1.4 / 100 );
    7
    php >
我假设您在没有ini_设置的情况下尝试了上面的代码(使用默认设置–精度可能为14),它在两个结果中都返回了7:

    php > echo ( 500 * 1.4 / 100 );
    7
    php > echo ( 500 * (1.4 / 100) );
    7
    php >

第二个例子怎么能给你7?这在我看来是不可能的。你的意思是
floor(500*1.4/100)
?我发现500*1.4*100不太可能返回接近7的值。在第二个示例(最后一个
*
)中是不是输入错误?它的意思是“floor(500*1.4/100)”,对吗?第二个表达式返回70000。第二个例子怎么能给出7?这在我看来是不可能的。你的意思是
floor(500*1.4/100)
?我发现500*1.4*100不太可能返回接近7的值。在第二个示例(最后一个
*
)中是不是输入错误?它的意思是“floor(500*1.4/100)”,对吗?第二个表达式返回70000。