更正变量的数据类型

时间:2014-07-03 07:00:54

标签: c

我有这样的问题: 以下哪个是变量的正确数据类型,如下所示:

a = 23.5

a) float
b) double
c) long double
d) None

据我说,它应该是双倍的。因为,如果我们

 float a = 23.5

然后,实际上,我们正在用double常量初始化float变量。我是对的说它是选项b吗?

3 个答案:

答案 0 :(得分:5)

这取决于a在程序逻辑中所需的类型,而不是它初始化的值的类型。

是的,float a = 23.5;,有double文字23.5float变量a的转换,但没关系。例如,要将double变量初始化为42.0,人们通常会使用

double a = 42;

其中42的类型为int,而不是更长的

double a = 42.0;

所以在我看来,floatdoublelong double在这里都可以被认为是正确的。

答案 1 :(得分:1)

您可以将此变量声明为double,float或long double。

区别在于类型的范围。

例如(一种可能的方式):

float- 4 bytes
double - 8 bytes
long double - 12 bytes

您可以在此处查看更多详细信息:http://www.lix.polytechnique.fr/~liberti/public/computing/prog/c/C/CONCEPT/data_types.html

答案 2 :(得分:0)

"这取决于"是正确的答案。

你提到的三个选项还有更多选择。

  • 如果您可以安全地假设您的数字是整数,或者 整数+1/2然后以整数形式存储2 * i可以是 正确的选择。
  • 另一种选择是有理数。有 那里的图书馆。