c语言中双精度实型常量特点是:实型常量隐含按双精度处理,谁能帮我解释一下,不太懂

如题所述

首先我们知道:如果你定义一个float变量,在运算时是按double进行处理的!
那么如果是浮点型常量,比如10.0,编译系统是怎么处理的呢?答案是在编译系统中是按照double型处理,比如在VC++中将会分配8个字节的空间。(而float是分配4个字节空间的)追问

float变量和double变量除了位数不同,还有什么不同么?该怎么选取这两个变量?

追答

因为内存占用的位数不同:

    他们的有效数字也不同一般float是6位,double是15位。

    他们的表示精度也不同

    选取变量就看你自己的需要了,有时够用了就没有必要选double,那样浪费内存空间(注意一个问题:你定义了 float a;double b;在运行b+=a;时a变量仍然是占4字节空间,只是a转化的零食变量是8字节,编译器这样处理是为了提高精度和运算速度)

    有关内存中怎么样存储浮点数的,可以参考我的文库,因为不是一两句话的问题了文档地址:http://wenku.baidu.com/view/90fad770376baf1ffc4fad7b

    望对你有帮助

温馨提示:答案为网友推荐,仅供参考
相似回答