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

时间:2013-12-09 21:41:24

标签: c++ types floating-point double precision

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

  

Q值。对于每种类型状态,其常量:

     

a。)1.0
  b。)2.8e-10

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

3 个答案:

答案 0 :(得分:2)

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

Float - 7位数(32位)

双15-16位(64位)

您的答案可能取决于您使用的语言,因为精确因素是一个关键因素。但我会说你可以选择 DOUBLE 。同样1.0也可以浮动,所以在不知道你的要求或语言的情况下很难回答。

答案 1 :(得分:1)

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

  

浮点文字的类型为double,除非后缀明确指定。后缀fF指定float,后缀lL指定long double

     

ISO C++ 2013 draft

答案 2 :(得分:-2)

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