首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP中的时间膨胀计算结果除以零?

PHP中的时间膨胀计算结果除以零?
EN

Stack Overflow用户
提问于 2014-04-13 22:59:31
回答 1查看 113关注 0票数 0

在做了相当多的挖掘之后,我发现了基于真空中光速标记的速度在空间中得到时间膨胀的计算。

我正在使用地球自转基座(稍后将计算地球速度),作为向上转换为光年时间的起始数。

我所写的代码如下:

代码语言:javascript
复制
$now = (time() / 86164.098903691);

echo 'Days: ' . $now;
echo 'Lightspeed: ' . dilation(0.95, $now);


function dilation($lightspeed, $elapsed) {
    $t = $elapsed/(((1-($lightspeed*299792458)^2)/(299792458^2))^0.5);
    return $t;
}

基本上,数字如下:

  • 299792458是真空中光速(m/秒)。
  • 86164.098903691是地球在它的轴上完全自转的精确秒(也就是地球上的一天--不要把它与太阳和月亮的距离波动的太阳日混淆起来)。参考资料:国际地球自转和参考系统处。

该公式是从>> http://www.phy.olemiss.edu/HEP/QuarkNet/time.html <<转换为php的公式,它似乎准确地表示了基于速度的时间膨胀。

这段代码的问题是,我得到了以下错误:

代码语言:javascript
复制
[Sun Apr 13 18:47:39.413743 2014] [:error] [pid 3028:tid 1328] [client 127.0.0.1:60754] PHP Warning:  Division by zero in C:\\server\\www\\127.0.0.1\\htdocs\\test.php on line 31

然而,还不清楚为什么所有变量似乎都要考虑在内。你能指出为什么会发生这种情况吗?

附录

以下代码不返回任何错误--

$time = time();$now = ($time / 86164.098903691);

代码语言:javascript
复制
$lightspeed = 0.95;
//echo ($lightspeed*299792458)^2;

$speed1 = (1-(($lightspeed*299792458)^2));
$speed2 = ((299792458^2)^0.5);
$dilation = ($now/($speed1/$speed2));

echo 'Unix: ' . $time . "\n";
echo 'Days: ' . $now . "\n";
echo 'Speed1: ' . $speed1 . "\n";
echo 'Speed2: ' . $speed2 . "\n";
echo 'Dilation: ' . $dilation . "\n";
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-13 23:12:07

^是PHP中的位xor运算符,而不是指数运算符。

使用

代码语言:javascript
复制
pow($lightspeed*299792458,2)

代码语言:javascript
复制
pow(299792458,2)

相反,

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23049499

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档