This question already has answers here:
What is E in floating point?
                                
                                    (4个答案)
                                
                        
                        
                            Scanf/Printf double variable C
                                
                                    (3个答案)
                                
                        
                                去年关闭。
            
                    
当我运行下面的代码

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


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

最佳答案

常数E在c语言中做什么


浮点常量的文档为here

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

它基于Eugene链接的科学E表示法。


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


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

关于c - 常数E用c语言做什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54293135/

10-11 16:34