全心思齐网

double类型数据怎么从键盘上输入?

C语言用scanf()函数输入双精度数据时,采用的数据格式参数必须是%lf,如:


double d;scanf("%lf", &d );


scanf("%f,%f",&a,&b);不能输入双精度数据吗?当然不能。主要原因在于double和float类型的大小不同:double类型数据在内存中存储占8字节(64位),按IEEE754标准存储,格式为:1位符号位+11位指数位+52位小数位


float类型数据在内存中存储占4字节(32位),按IEEE754标准存储,格式为:1位符号位+8位指数位+23位小数位


当输入数据格式串为%f时,scanf()按float类型将输入的数据存储到内存地址中,这时,若再按double类型解释输出数据时,数据当然不是用户输入的内容了。

匿名回答于2024-05-25 22:46:36


使用Scanner类中的nextDouble()方法可以从键盘读取double类型数据。例如:
Scanner input = new Scanner(System.in);
double num = input.nextDouble();

匿名回答于2024-05-19 02:30:33


相关知识问答