gpt4 book ai didi

perl 求幂结果为 "nan"

转载 作者:行者123 更新时间:2023-12-01 14:00:56 26 4
gpt4 key购买 nike

我有以下问题:我有多个值 x,我需要计算 x^e(e 是欧拉数)。我这样做:

$x = $x ** exp(1);

这导致我所有的测试用例都为“nan”。

但是,如果我在执行此操作之前打印 $x 的值,然后取一个并将上面的行更改为:

$x = -12.4061063212051 ** exp(1);

它会产生完美的数字。

谁能指出我在这里做错了什么?

谢谢

PS:也许错误隐藏在其他地方,所以这是我计算 $x 的方式:

$y = #some float value taken from the output string of another program
$x = ($y/(303 * 0.0019872041));
print $x; #prints number
$x = $x ** exp(1);
print $x; #prints "nan"

最佳答案

一切都与运算符优先级有关:

$x = -12.4061063212051 ** exp(1);

真的是

$x = - (12.4061063212051 ** exp(1));

如使用所见

$ perl -MO=Deparse,-p -e'$x = -12.4061063212051 ** $e'
($x = (-(12.4061063212051 ** $e)));
-e syntax OK

这很好。

如果您尝试以下操作,它也会像您的程序一样失败:

$x = (- 12.4061063212051) ** exp(1);

而且应该是,没有符合这个条件的实数。

关于perl 求幂结果为 "nan",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7322615/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com