C++: 0. 和 0.0 之间的区别?

发布于 2024-10-07 20:20:18 字数 159 浏览 6 评论 0原文

我很清楚 00.0 (int 和 double)之间的区别。

但是 0.0.0 之间有什么区别吗(请注意 . )?

预先非常感谢,

阿克塞尔

I am well aware of the difference between 0 and 0.0 (int and double).

But is there any difference between 0. and 0.0 ( please note the . )?

Thanks a lot in advance,

Axel

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

带刺的爱情 2024-10-14 20:20:18

没有什么区别。两个文字都是双精度的。来自 C++ 语法:

fractional-constant:
    digit-sequenceopt . digit-sequence
    digit-sequence .

请参阅:超链接 C++ BNF 语法

There is no difference. Both literals are double. From the C++-Grammar:

fractional-constant:
    digit-sequenceopt . digit-sequence
    digit-sequence .

See: Hyperlinked C++ BNF Grammar

我恋#小黄人 2024-10-14 20:20:18

不,没有。

No, there is not.

只是我以为 2024-10-14 20:20:18

不,据我所知,你也可以写.0。

No. You can also write .0 as far as I know.

朕就是辣么酷 2024-10-14 20:20:18

只需将 . 作为数字的一部分即可将其标识为浮点类型。

打印:

 cout << (5 / 2) << endl;
 cout << (5. / 2) << endl;
 cout << (5.0 / 2) << endl;

 2
 2.5
 2.5

可以看到第一行使用整数除法(因为两个值都是整数),而 5.5.0 都被标识为浮点类型,因此它们会触发“正常分裂”。

Just having the . as part of the number identifies it as a floating point type.

This:

 cout << (5 / 2) << endl;
 cout << (5. / 2) << endl;
 cout << (5.0 / 2) << endl;

Prints this:

 2
 2.5
 2.5

You can see that the first line uses integer division (because both values are integers), whereas 5. and 5.0 both get identified as floating point types, and so they trigger "normal division."

雄赳赳气昂昂 2024-10-14 20:20:18

0 是 int 类型,但可以转换为 double,0.0 是 double 类型,但可以转换为 int。
两种强制转换都是隐式的。

0 is of type int but can be casted to double and 0.0 is of type double but can be casted to int.
Both casts are implicit.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文