float f=124.50;
cout<<sizeof(f);
cout<<sizeof(124.50);
两个语句都给出了不同的结果。但是适用于int和char。为什么浮动有所不同?
答案 0 :(得分:2)
124.50
是一个floating point literal,可生成double
,而非float
。您需要f
后缀才能生成float
:
sizeof(124.5f)
将等于sizeof(f)
。答案 1 :(得分:0)
在cout<<sizeof(124.50);
中,124.50
不是float
。它floating point literal并且类型为double
。除非您指定后缀,否则所有浮点文字都是double
类型。
答案 2 :(得分:0)
因为124.50是双倍的 默认情况下,文字常量为double,除非您将其定义为float:124.3F。
打印4。
std::cout << sizeof(123.4F);