C++ 以下浮点数初始化之间有什么区别?

C++ 以下浮点数初始化之间有什么区别?,c++,type-conversion,C++,Type Conversion,浮点数的初始化可按如下方式进行: float a = 0.0 float a = 0.f float a = float(0) 使用这些方法有什么优点和缺点吗?这一点都不重要。你也可以说float a=0,同样的事情。或float a=float()。我认为最传统的是0,0.0,或者0f;其余的都是多余的。第一个是从双字面值初始化的,而第二个是从浮点面值初始化的。两个零中的位可能不相同 第三是C++构造函数式的语法,实际上只是直接初始化,在这种情况下,从整数文本。我认为OP并不意味着只在分配零

浮点数的初始化可按如下方式进行:

float a = 0.0
float a = 0.f
float a = float(0)

使用这些方法有什么优点和缺点吗?

这一点都不重要。你也可以说
float a=0,同样的事情。或
float a=float()。我认为最传统的是
0
0.0
,或者
0f
;其余的都是多余的。

第一个是从双字面值初始化的,而第二个是从浮点面值初始化的。两个零中的位可能不相同


第三是C++构造函数式的语法,实际上只是直接初始化,在这种情况下,从整数文本。

我认为OP并不意味着只在分配零的情况下。我会把它留给OP来表示它们的意思,但是如果它们也意味着其他常量值,我所说的一切仍然适用,除了关于
float()
的位。从双精度0初始化的浮点中的位可能与直接从浮点0初始化的位不同?怎么用?据我所知,IEEE754只有两种表示零的方法,一种是-0,上面两种方法都不会给出