奇怪的浮点数问题!
#include <stdio.h>
void main()
{
double doub=1230.12345678901234567890123;
float flo1=1234.1;//567890123456
float flo2=0;
int a;
scanf("%d",&a);
printf("doub:%f\na:%d",doub,a);
//scanf("%f",&flo1);
printf("flo1:%12.9f\n",&flo1);
scanf("%f",&flo2);
printf("flo2:%f\n",&flo2);
scanf("%f",&flo2); /**pause */
}
/*
* 上面程序的结果出乎令人意料,整数a能够正确输入,也能正常打印出来。
* 但是后面的flo1和flo2为什么就不能正确输入,输出呢!
渐愧!!!
疑问:
1: 为什么flo1,不能正确输入和显示呢?有时输入了,打印出来时还是初始值!有时干脆打印出 0.00000000000
2:更有时候:根本就跳过scanf,不让我输入,奇怪!难道是buffer出了什么问题?
3: 如果我想输入double型的数,不知道怎么用语句来实现输入????
4:最后我想问一个问题:如果我想在结果后面保留小数点后面30位以上,,不知道如何实现~!!多谢!!用于科计算! 电子能量等!!
头疼!奇怪!谢谢大家!!
chendiy@sohu.com
*/