gpt4 book ai didi

java - 整数除法 : How do you produce a double?

转载 作者:行者123 更新时间:2023-12-01 16:19:12 28 4
gpt4 key购买 nike

对于此代码块:

int num = 5;
int denom = 7;
double d = num / denom;

d 的值为 0.0。可以通过强制转换来强制它工作:

double d = ((double) num) / denom;

但是还有其他方法可以获得正确的double结果吗?我不喜欢转换基元,谁知道会发生什么。

最佳答案

double num = 5;

这避免了强制转换。但您会发现强制类型转换是明确定义的。你不必猜测,只需检查 JLS 。 int 到 double 是一种扩大转换。来自 §5.1.2 :

Widening primitive conversions do not lose information about the overall magnitude of a numeric value.

[...]

Conversion of an int or a long value to float, or of a long value to double, may result in loss of precision-that is, the result may lose some of the least significant bits of the value. In this case, the resulting floating-point value will be a correctly rounded version of the integer value, using IEEE 754 round-to-nearest mode (§4.2.4).

5 可以精确地表示为 double 。

关于java - 整数除法 : How do you produce a double?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62316571/

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