<分区>
谁能弄清楚以下语句的计算结果是 7?
echo (int)( (0.1+0.7)*10 );
我正在尝试 PHP 中的运算符优先级。因此,如果有人可以提供帮助,我们将不胜感激。
<分区>
谁能弄清楚以下语句的计算结果是 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 - MySQL 查询 : generate a report of the top votes for the each food type