PHP 运算符优先级

标签 php mysql wamp

<分区>

谁能弄清楚以下语句的计算结果是 7?

echo (int)( (0.1+0.7)*10 );

我正在尝试 PHP 中的运算符优先级。因此,如果有人可以提供帮助,我们将不胜感激。

最佳答案

如果删除 (int) 部分,而是运行以下代码:

echo number_format(((0.1+0.7)*10), 20);

输出将为 7.99999999999999911182。解析为整数的该值将得到 7,因为将值解析为整数总是会降低该值。 阅读following article应该让您了解这里发生了什么。

简而言之,double 值始终是二进制值,并且通过它是“2^n 的乘积”,以最接近您所说的小数点为准。对于 2^n,您没有任何机会恰好达到 0.1。

关于PHP 运算符优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18238197/

相关文章:

java - Spring Boot无法在Docker环境中与MySQL DB通信

php - 无法从 WordPress 的 WAMP 旧安装(数据库)导入/复制数据库

php - 配置wamp连接ms sql server 2008

php - 将 JSONArray 从 Android 传递到 PHP

javascript - 包含 jQuery,如果还没有包含的话

php - 当字段为空时返回所有结果

php - 如何从已拖放到特定区域的图像中获取值并插入到数据库中?

javascript - 将嵌套对象传递给 POST 请求

php - MySQL 查询 : generate a report of the top votes for the each food type

mysql - #2006 MySQL 服务器在 Wamp 中消失了错误