c语言long double输入格式,DEV-C++ 中用printf() 如何输出12字节的 long double 类型数据?...

在dev-c++5.7.1和VC++6.0环境下,程序展示了long double类型的存储与输出差异。尽管long double占用12字节,但在printf中无法正确显示。尝试了%lg、%le等格式都无法解决。该问题在VC++6.0中表现为long double实际上是8字节的double。寻求解决方案以正确输出12字节的long double类型数据。
摘要由CSDN通过智能技术生成

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

在dev-c++5.7.1中,程序如下:

#include

int main(void)

{

float a=9876543210123456789.0;

double b=9876543210123456789.0,d;

long double c=9876543210123456789.0;

d=(double)c;

printf("float is %2dB\n",sizeof(float));

printf("double is %2dB\n",sizeof(double));

printf("long double is %2dB\n",sizeof(long double));

printf("float a = %30.10f\n",a);

printf("double b = %30.10lf\n",b);

printf("long double c = %30.10Lf\n",c);

printf("double d = c = %30.10Lf\n",d);

}

运行结果为:

float is 4B

double is 8B

long dlouble is 12B

float a=9876543516404875300.0000000000

double b=9876543210123456500.0000000000

long dlouble c= -0.0000000000

double d = c = 9876543210123456500.0000000000

从结果和其它尝试可知:

(1)long dlouble 是12字节的浮点数,存储的数据正确,但是用printf()函数无法输出?

(2)尝试过用%lg、%le等格式均不能正确输出。

(3)此程序在VC++6.0中运行正常,但是VC++6.0中long dlouble是8字节长的,实际为double型数据,不能回答本问题。

试问:用printf() 如何输出12字节的 long double 类型数据?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值