C++ C++;:0之间的差异。和0.0?
我很清楚C++ C++;:0之间的差异。和0.0?,c++,c,grammar,double-precision,C++,C,Grammar,Double Precision,我很清楚0和0.0(int和double)之间的区别 但是0.和0.0之间有什么区别吗?(请注意。) 提前多谢了 阿克塞尔不,没有。不。据我所知,你也可以写.0。没有区别。两个字面值都是双精度的。从C++语法: fractional-constant: digit-sequenceopt . digit-sequence digit-sequence . 请参阅:0类型为int,但可以转换为double;0.0类型为double,但可以转换为int。 这两种类型转换都是隐式的。
0
和0.0
(int和double)之间的区别
但是0.
和0.0
之间有什么区别吗?(请注意。)
提前多谢了
阿克塞尔不,没有。不。据我所知,你也可以写.0。没有区别。两个字面值都是双精度的。从C++语法:
fractional-constant:
digit-sequenceopt . digit-sequence
digit-sequence .
请参阅:
0
类型为int,但可以转换为double;0.0
类型为double,但可以转换为int。这两种类型转换都是隐式的。只要将
作为数字的一部分,就可以将其标识为浮点类型
这:
您可以看到,第一行使用整数除法(因为两个值都是整数),而
5.
和5.0
都被标识为浮点类型,因此它们触发“正常除法”。是的。Type couttypeid(0)。name()
正在使用int-请注意,后面没有小数点。试试真的不行吗?真奇怪。Howcome couttypeid(0)
这个问题明确地询问了0.
;它甚至说“注意”。没有语义上的区别(好吧,在源代码中有一个额外字节的区别:p)。但是,与此稍微相关的是,+0.0和-0.0之间存在差异。玩得高兴
cout << (5 / 2) << endl;
cout << (5. / 2) << endl;
cout << (5.0 / 2) << endl;
2
2.5
2.5