将整数类型转换为 double 时,使用 (double) 与乘以 1.0 之间有什么区别?

问题描述 投票:0回答:1

我想知道使用

double
将整数转换为双精度数与将整数乘以 1.0

有什么区别
int a = 4
int b = 3

double c = 1.0 * a / b
double d = (double) a / b

最终

c
d
输出 1.333..

根据我的理解,

c
被转换为双精度,因为
1.0 * a
使
a
成为双精度,并且当使用浮点和整数除法时,输出将始终是浮点,但在假设的情况下,你只想将整数转换为双精度数,这两种方法有什么区别?



我发现两个问题提出了类似的问题,但要么以一种奇怪的方式提出,没有人能够回答,要么问了一些略有不同的问题。

1: 通过乘以 1.0 或加 1d 将 int 转换为 double?(无法理解)
2: 使用(双)或“ *1.0”进行投射(要求最佳实践)

java casting integer double
1个回答
0
投票

使用演员表。 编写代码时,正确性和可维护性都很重要。 虽然这两种选择都可能给你正确的答案,但只有一个显然是“我想将 int 转换为 double”。 另一个是“为什么这个数字要乘以 1.0?这看起来没什么用。哦,它是一个 int,所以这使它成为一个 double”,这是你强加给未来代码读者的无用的认知负担(这可能是3 个月后你就会想知道当他们写下这句话时你年轻 3 个月时在想什么)。

© www.soinside.com 2019 - 2024. All rights reserved.