gpt4 book ai didi

java - 在施工时双重优先于 float

转载 作者:太空狗 更新时间:2023-10-29 23:52:05 27 4
gpt4 key购买 nike

请解释:

我正在声明一个具有 2 个构造函数的类,如下所示:

class A {
public :
A (double x) {cout << "DOUBLE \n";}
A (float x) {cout << "FLOAT \n";}
};

然后:

A a (3.7);

此结果以 DOUBLE 作为输出。我也在 java 上试过这个 - 同样的结果。谁能解释一下为什么?

编辑:我确实意识到 double 是数字的默认类型,例如 3.7 我的问题是为什么以及是否有充分的理由。

最佳答案

这是因为 3.7 文字是一个 double。如果您想要 float ,请使用3.7f。在 C++ 中,它在标准 2.14.4 Floating Literals 中指定。最相关的部分是

The type of a floating literal is double unless explicitly specified by a suffix. The suffixes f and F specify float, the suffixes l and L specify long double.

这没有回答为什么会这样。我想这是因为它在 C 中的方式,而在某种程度上,C 中的方式必须是任意的。

关于java - 在施工时双重优先于 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17481015/

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