java - 将 Java 代码转换为 PHP - 在对双数执行数学运算时 php 中丢失有效数字

标签 java php

我正在尝试将一些用 Java 编写的逻辑转换为 PHP,并且在对 double 执行数学运算时在 PHP 中看到与 java 不同的输出。

查看下面的代码和输出

    --------- java --------------
    double x =  0.1*(double)37.17;
    System.out.print(x); // prints 3.7170000000000005  

    --------- PHP --------------
    $x =  0.1*(double)37.17;
    echo $x; // prints 3.717

为什么会这样?当我在某些对数运算中使用这些值时,结果会产生显着差异。

最佳答案

问题不在于算术本身。问题是默认情况下 PHP 输出小数点后两位数字的 float 。

您可以使用 ini_set 更改此(默认);即

ini_set('precision', 17);

或者,您可以使用format_number 将数字转换为字符串,并直接控制小数点后的位数。或者使用 printf

更多信息:

关于java - 将 Java 代码转换为 PHP - 在对双数执行数学运算时 php 中丢失有效数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40188722/

相关文章:

java - java中的参数和项目

php - 关于在php中调用每张表有多少分类

java - 无法映射正则表达式 - java.lang.IllegalArgumentException : The number of capturing groups in the pattern segment

php - Wordpress Contact Form 7 将 POST 变量传递给感谢页面

php - 查找以 m/d/Y 格式存储的两个日期之间的天数

php - 仅在特定时间运行代码

javascript - PHP更新查询不执行,弹出表单关闭

java - 谷歌地图不会显示

java - EJB 空点异常

java - Apache HTTP Client 和代理的条件设置