2015-10-15 140 views
1

floor(500 * (1.4/100))给我6 和 floor(500 * 1.4/100)给了我7PHP算术运算(加法)

谁能帮助我了解PHP算术的内部工作原理。

+5

第二个例子如何给你7?这对我来说似乎不可能。 – Daan

+4

你的意思是“地板(500 * 1.4/100)”? – Amessihel

+1

我发现500 * 1.4 * 100不可能返回接近7的任何东西。 –

回答

6

它的工作原理与其他语言一样。试一下javascript:

(500*(1.4/100)) // this will give you 6.999999999999999 
    (500* 1.4/100) // this will give you 7 

问题是,PHP的内部设置,告诉他关于精度,他显示浮点数的精度。尝试做这样的事情:(使用默认设置 - 可能14精密)

php > ini_set('precision', 17); 
    php > echo (500 * (1.4/100)); 
    6.9999999999999991 
    php > echo (500 * 1.4/100); 
    7 
    php > 

我想你已经尝试过上面的代码没有的ini_set,并在这两个结果返回你7:

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