【发布时间】:2011-01-23 23:34:57
【问题描述】:
有谁知道为什么会发生这种情况以及是否可以解决。我正在比较 C 和 PHP 的结果,但 PHP 给了我不同的结果。
如果需要,我可以提供一些代码,但以前有人经历过吗?
PHP 代码
$tempnum = 1.0e - 5 * -44954; // substr($line1,53,6); $bstar = $tempnum / pow(10.0, 3); $bstar 在 PHP 中给了我 -0.00044954 但它应该是 -0.000450C 代码
双倍温度 = 1.0e - 5 * -44954; 双 bstar = tempnum / pow(10.0, 3); printf bstar 给我 -0.000450到目前为止,感谢您的回复,但是 PHP 是如何得出这个结论的...
$twopi = 6.28318530717958623; /* 2*Pi */ $xmnpda=1440; //1.44E3 ; /* 每天分钟 */ $temp = (($twopi/$xmnpda)/$xmnpda); $xndt2o = -0.000603; $xndt2o = $xndt2o * $temp; echo $xndt2o 在 PHP 中给了我 -1.8256568188E-9 但在 C 中它给了我 -0.000000我不知道 PHP 中的所有内容。
【问题讨论】:
-
The accuracy of PHP float calculate 的可能副本以及该问题的数百个其他变体
-
您现在应该提供代码。并告诉我们它们有何不同、结果如何以及您的期望。 (另外:PHP 是用 C 实现的,它可能在后台使用 C 双精度。)
-
我们还需要看到等价的C。
-
我已经提供了我正在使用的代码。
-
你还没有完全 - C 代码不会编译。格式字符串很重要。