我该如何评估这个方程?

发布于 2024-12-21 01:15:37 字数 233 浏览 0 评论 0原文

我认为从代码来看它是不言自明的。显然,我不会一遍又一遍地评估同一件事,它只是解释我的问题的示例数字。我猜测它的上溢/下溢,但我不知道如何处理它。

double d = (1 / (684985+157781));

System.out.println(d); // returns 0.0
System.out.println(Math.log(d)); // returns -Infinity.

I think its pretty self explanatory from the code. Obviously I'm no evaluating the same thing over and over, its just example numbers to explain my problem. I'm guessing its over/underflow but I don't know how to deal with it.

double d = (1 / (684985+157781));

System.out.println(d); // returns 0.0
System.out.println(Math.log(d)); // returns -Infinity.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

十二 2024-12-28 01:15:37

(1 / (684985+157781)) 是一个整数表达式,因此结果将是 0
然后零被分配给double d,如0.0

尝试将 1 更改为 1.0 以强制该表达式为浮点数,或将 1.0D 更改为双倍。

(1 / (684985+157781)) is an integer expression, so it will come out to 0.
The zero then gets assigned to the double d, as 0.0.

Try changing the 1 to 1.0 to force that expression to be a float, or 1.0D to force it to double.

哑剧 2024-12-28 01:15:37

另一个人通过整数除法完成:

double d = (1.0 / (684985.0+157781.0));

Another person done in by integer division:

double d = (1.0 / (684985.0+157781.0));
昔梦 2024-12-28 01:15:37

不,在Java中如果你使用整数,除法的结果将再次是整数,你必须将至少一个操作数转换为double。

double d = (1 / (double)(684985+157781));

No, in Java if you use integers, the result of division would be again integer, you have to cast least one operand to double.

double d = (1 / (double)(684985+157781));
野生奥特曼 2024-12-28 01:15:37

尝试使用 double d = (1.0 / (684985+157781));

请注意 1.0 部分:您想要强制进行双重计算。

Try using double d = (1.0 / (684985+157781));

Note the 1.0 part: you want to force the double evaluation.

任性一次 2024-12-28 01:15:37

第一个表达式是用整数算术计算的。为了得到你期望的答案,你需要用浮点运算来计算它,因此:

double d = (1.0 / (684985.0+157781.0));

That first expression is computed in integer arithmetic. To get the answer you're expecting, you need to compute it in floating-point arithmetic, thus:

double d = (1.0 / (684985.0+157781.0));
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文