C语言,double类型的变量使用scanf()函数赋值后再使用printf()输出,为什么和输入的值不同?

[复制链接]
查看11 | 回复5 | 2015-9-15 22:22:57 | 显示全部楼层 |阅读模式
c语言中double输入输出,都用 %lf 进行格式化,是否写成了 %f, 这个是float类型。#include int main(){
double d = 0;
printf("intput a double:");
scanf("%lf", &d);
printf("d = %lf\n", d);
return 0;}2. 字符定义如下字符对应数据类型含义d / iint接受整数值并将它表示为有符号的十进制整数,i是老式写法ounsign...
回复

使用道具 举报

千问 | 2015-9-15 22:22:57 | 显示全部楼层
精度不够截断了吧改成这样#include void main( ){double x; scanf("%lf", &x); printf("%lf\n", x); }%f是输入float型时用的...
回复

使用道具 举报

千问 | 2015-9-15 22:22:57 | 显示全部楼层
float是4个字节,而double是8个字节,如果你要写入double你就必须写入8个字节,4个字节的写入使得另外4个字节就是随机数字,可以用long float来替代double因为他也是8个字节。...
回复

使用道具 举报

千问 | 2015-9-15 22:22:57 | 显示全部楼层
#includevoid main(){double x;scanf("%lf", &x);printf("%lf\n", x);}双精度double要用%lf,不信,你试一试。祝你愉快!...
回复

使用道具 举报

千问 | 2015-9-15 22:22:57 | 显示全部楼层
因为double不能用%f来控制输入和输出,应该用%ld来控制输入和输出。#include void main( ){double x; scanf("%ld", &x); printf("%ld\n", x); }...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行