在double和float数据类型之间混淆

问题描述 投票:1回答:3

我在C ++中对doublefloat感到困惑。例如:

问:对于每种类型状态,它的常量:

a。)1.0 b。)2.8e-10

根据我,a.)部分是float(因为它不太精确)和b.)double。或者都是double

c++ types floating-point double precision
3个回答
1
投票

如果没有f后缀,所有浮点文字都是C ++中的double。如果用L后缀写,那么它将是long double。文字常数通常不依赖于它们的大小。像1或2这样的整数文字属于int类型,尽管它们的值完全位于char的范围内

除非后缀明确指定,否则浮动文字的类型是double。后缀fF指定float,后缀lL指定long double

ISO C++ 2013 draft


2
投票

我认为精确度是两者之间的主要区别:

浮动 - 7位数(32位)

双15-16位(64位)

您的答案可能取决于您使用的语言,因为精确因子是一个关键因素。但我会说你可以同意两者都是双倍的。 1.0也可以浮动,所以在不知道你的要求或语言的情况下很难回答这个问题。


-2
投票

你可能会认为它们都是双倍的,最后它的大小只是1.0的尺寸很小所以你可以认为它也是浮动的。

© www.soinside.com 2019 - 2024. All rights reserved.