c++ double和int有什么不一样。(不理解)

如题所述

int 和 double 都是基本数据类型, int 是整形, double 是浮点型。

一般来说 , int 型变量占用的存储空间和机器字一样大,即 32位系统中是 4个字节; 64位系统中是 8个字节; 而 double 型变量 一般占用8字节,double 型变量占用的存储空间不会小于 int 型变量。

double 型表示的值范围要比 int 表示的值范围大,且从 double 值转换到 int 值,会进行四舍五入,从而有精度损失。追问

double怎么用

追答

double就是IEEE754的64位浮点数
1位符号位
11位指数位
52位尾数位

你可以说,精确到52位2进制位。
也就是说,精确到log(2^52)/log(10) = 15.6535597 位10进制位。

#include <stdio.h>
int main()
{
    double a;
    scanf("%lf", &a);
    printf("%.20lf", a);
    return 0;
}

输入输出:
0.12345678901234567890
0.12345678901234568000

0.44444444444444444444
0.44444444444444442000

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-11-19
int是整数,double是实数,两者的实现机制不同追问

举个例子吧
你这样说让我一脸懵逼

追答

int是通过补码实现的,double是通过阶码和尾数实现的。

追问

不懂

追答

比如
int x=1;//整数,不带小数
double a=3.0;//实数,带小数
x=x/a;//x除以a会先把x转化为实数再除a,结果是0.33333…把0.33333…赋值到整数a后,因为a是整数类型变量,所以会把小数部分截掉,只留下整数部分,最后的结果是x为0

追问

啊!懂了
赏你10点财富值

本回答被提问者采纳
相似回答