常数E在c语言中做什么

时间:2019-01-21 15:32:05

标签: c

当我运行以下代码时

int main(int argc,char *argv[]) {
    double n = 2E-1;
    printf("%d",n);
}

运行代码时,它会打印一个怪异的数字,而不是0.2(2E-1)。

2 个答案:

答案 0 :(得分:3)

  

常量C用c语言做什么

浮点常量的文档为here

格式1e21E2表示 1乘以2 的十倍,您完全正确地认为{{ 1}}表示 2E-1乘以2 -1的幂的十倍。

它是基于Eugene链接的科学E符号。

  

运行代码时,它会打印一个奇怪的数字

那仅仅是因为您使用了错误的格式说明符。这些已记录在here中,您可以看到您应该将0.2中的一个用于双打。

答案 1 :(得分:0)

在C语言中,对于double,格式说明符为%lf

因此,如果您使用%lf,则它将n打印为0.200000

如果您使用%g%G(由于支持的数据类型为float,double),则输出将为0.2