Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
相同函数的php和python结果差异_Php_Python - Fatal编程技术网

相同函数的php和python结果差异

相同函数的php和python结果差异,php,python,Php,Python,我正在转换已经用PHP5.6编写的现有旧代码库。现在我将它转换为python3.6。因此,为了计算sin一个纬度数,之前我是这样做的 echo sin(deg2rad(45)); 返回0.70710678118655 现在在python中,我是这样做的 import math print(math.sin(math.radians(45))) 返回0.7071067811865475 最后一个数字的两个结果略有不同,即php…8655和python…865475。当我查询现有数据集时,这个

我正在转换已经用
PHP5.6
编写的现有旧代码库。现在我将它转换为
python3.6
。因此,为了计算
sin
一个纬度数,之前我是这样做的

echo sin(deg2rad(45)); 
返回0.70710678118655

现在在python中,我是这样做的

import math
print(math.sin(math.radians(45)))
返回0.7071067811865475

最后一个数字的两个结果略有不同,即php…8655和python…865475。当我查询现有数据集时,这个微小的结果差异导致了巨大的不一致性。我知道对于php和python版本,我可以将结果四舍五入到一些小数位,但是

我想知道如何使两个结果相同,而不将其四舍五入


python的数学包计算
math.radians
math.sin
的结果与php不同,所以它不相等

为什么不进行四舍五入呢?这看起来像是一个精度问题。PHP会自动将其舍入到14位,而python可以更进一步。只需将值舍入到14位小数。不同的语言对精度有不同的理解。PHP看起来是14dp,python显然是16。它们与14dp相同。在这两种情况下,你都可以在合理的范围内指定精度。只需数数、谷歌搜索或阅读我们所写的内容即可。14