【发布时间】:2014-06-12 09:09:44
【问题描述】:
在 scala(java) 中
scala> 8218553819005469347L * 31
res75: Long = -3479248642764172867
但是在php中(5.5/64bit linux系统)
<?php
echo (int)(8218553819005469347 * 31);
它打印 -3479248642764177408
如何让php返回和java一样的结果。
【问题讨论】:
-
对不起,Java 和 Scala 可以互换吗?
-
@ChiefTwoPencils scala 和 java 在这里有相同的行为。
-
答案:Java 程序员需要阅读 php Stuff 和 php 程序员需要阅读 Java Doc... :)
-
echo ((8218553819005469347 * 31) > PHP_INT_MAX) ? -PHP_INT_MAX : (int)(8218553819005469347 * 31);也许? (未经测试) -
那么以 JVM 为目标的 每一种 语言也会以相同的方式运行。您没有在帖子中包含这些语言或标签。关键是,它的编写方式可能有点混乱。
标签: java php integer-overflow