【问题标题】:Rounding in PHP and Java Different Outputs在 PHP 和 Java 中舍入不同的输出
【发布时间】:2018-06-03 19:55:04
【问题描述】:

我想在 JAVA 中产生与在 PHP 中相同的输出,但是当两个整数相除时,某些数字会在两者中产生不同的输出。

JAVA代码:

class HelloWorld {
    public static void main(String[] args) {
        int number1 = 5834985;
        int number2 = 9;

        System.out.println(number1 / number2);
    }
}

PHP 代码:

<?php
$number1 = 5834985;
$number2 = 9;
$a = $number1 / $number2;

echo round($a, 0);
?>

JAVA代码输出:648331

PHP 代码输出:648332

但是,如果您将第二个数字更改为 8,它们会输出:

JAVA代码输出:729373

PHP 代码输出:729373

如果第二个数字不断变化,您如何能够始终如一地产生相同的输出?

【问题讨论】:

  • 代码不等价 - PHP 版本使用舍入,而 JAVA 版本只进行整数除法。

标签: java php math integer rounding


【解决方案1】:

你可以使用floor函数如下

<?php
    $number1 = 5834985;
    $number2 = 8;
    $a = $number1 / $number2;

    echo floor($a);
?>

输出:

648331

【讨论】:

    【解决方案2】:

    你在java中将2个整数相除,结果只会返回整数。

    尝试使用floatdouble

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多