64,654
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
double x = 1.23;
printf("%lf\n" , x);
return 0;
}
printf("%lf\n" , x);
改成printf("%f\n" , x);
就没问题了 ,
我记得如果是double 不是应该用%lf吗?1)1f 还是lf 1234 的1,还是 lmn的 l
2)编译选项的配置
C,C++居然没有让 格式化输出的 %f,%lf ,Lf成为标准
所以 输出格式有不同的对应关系
float ,double ,long double
1) %f ,%lf ,%Lf
2) %hf, %f ,%lf
3) %f ,%f ,%lf //float ,double 都是%f long double %lf
4) %f,%f ,%Lf //float ,double 都是%f,long double %Lf
...........................
这几种组合 在 code ::blocks 中的 minGw 编译器中都可以通过编译环境配置,让他们支持。
double x = 3.1415926535897932, y = 1.23;
printf("%lf\n", x);
printf("%.20lf\n", x);
printf("%.20lg\n", x);
printf("%lf\n", y);
printf("%.20lf\n", y);
printf("%.20lg\n", y);