回 帖 发 新 帖 刷新版面

主题:《C Primer Plus》不懂之处 求指教!

#include<stdio.h>
int main(void)
{
    float aboat = 32000.0;
    double abet = 2.14e9;
    long double dip = 5.32e-5;
    printf("%f can be written %e\n",aboat,aboat);
    printf("%f can be written %e\n",abet,abet);
    printf("%f can be written %e\n",dip,dip);
    getch();
    return 0;
    }
此为书上代码  但我在编译结束之后  第三行数字总是和“5.32e-5”不符 好像就是随机出现的数据一样...
目测 "long double"关键字组合编译器不支持(把long去了数据恢复正常)... 可我试了好几个都是如此 
为毛关键字组合编译器不支持  ...
本人刚读此书不久  多有不理解之处  求高手指点一下!

回复列表 (共2个回复)

沙发


特意查了一下C99,按标准应该这么写

#include <stdio.h>

int main(void)
{
    float aboat = 32000.0[color=FF0000]f[/color];
    double abet = 2.14e9;
    long double dip = 5.32e-5[color=FF0000]L[/color];
    printf("%f can be written %e\n",aboat,aboat);
    printf("%f can be written %e\n",abet,abet);
    printf("%[color=FF0000]L[/color]f can be written %[color=FF0000]L[/color]e\n",dip,dip);

    return 0;
}

板凳

楼上正解!

我来回复

您尚未登录,请登录后再回复。点此登录或注册