| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5481 人关注过本帖
标题:gcc中 输出"long double"应该用什么格式字符串?
只看楼主 加入收藏
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
结帖率:94.64%
收藏
已结贴  问题点数:20 回复次数:11 
gcc中 输出"long double"应该用什么格式字符串?
我用的IDE是Code::blocks,编译器是gcc
long double ld = 0.123L;
    printf("%Lf\n", ld);
运行上面一段代码后输出的是:
图片附件: 游客没有浏览图片的权限,请 登录注册

书上说的也是"%Lf",但是这里为什么不行呢,网查了也是说用"%Lf"。
搜索更多相关主题的帖子: 编译器 
2011-06-29 16:38
zxwangyun
Rank: 4
来 自:云南
等 级:业余侠客
威 望:1
帖 子:232
专家分:299
注 册:2008-10-17
收藏
得分:0 
linux下正常
图片附件: 游客没有浏览图片的权限,请 登录注册

努力改变一点点!!
2011-06-29 17:49
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:0 
回复 2楼 zxwangyun
Windows下应该怎么办呢?

My life is brilliant
2011-06-29 17:50
zxwangyun
Rank: 4
来 自:云南
等 级:业余侠客
威 望:1
帖 子:232
专家分:299
注 册:2008-10-17
收藏
得分:0 
你用的mingw?

努力改变一点点!!
2011-06-29 17:51
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:0 
回复 4楼 zxwangyun
对。。

My life is brilliant
2011-06-29 17:56
zxwangyun
Rank: 4
来 自:云南
等 级:业余侠客
威 望:1
帖 子:232
专家分:299
注 册:2008-10-17
收藏
得分:0 
哎,刚刚试了下,确实不行,今天有事,明天再交流

努力改变一点点!!
2011-06-29 17:58
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:0 
回复 6楼 zxwangyun
谢谢你啊。。。

My life is brilliant
2011-06-29 18:04
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:5 
long double a;
cout << a << endl;

—>〉Sun〈<—
2011-06-29 22:23
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:0 
回复 8楼 cosdos
printf()里应该用什么格式字符串呢???

My life is brilliant
2011-06-30 07:54
zxwangyun
Rank: 4
来 自:云南
等 级:业余侠客
威 望:1
帖 子:232
专家分:299
注 册:2008-10-17
收藏
得分:15 
图片附件: 游客没有浏览图片的权限,请 登录注册


1) MinGW supports 80-bit long doubles; MSVC uses only 64-bits,
   (exactly the same as double).

2) MinGW uses Microsoft's MSVCRT runtime; the printf() routines
   in that can't interpret 80-bit long doubles.

In the majority of the references, turned up by the above links,
that is made abundantly clear; most suggest casting long double
to double, in the printf() call, so MSVCRT's printf() can format
the data, albeit with loss of precision.

The alternative, as most of the references state, is to wait for
some kind soul to provide an alternative printf() implementation,
which can interpret 80-bit long doubles.  What makes most of
those references obsolete is, that since mingwrt-3.15 was released,
that alternative implementation is available; however, the default
is still to use the MSVCRT implementation.  If you want to use the
alternative implementation, you have to request it; you do this
by adding `-ansi' or `-posix' to your compile options, or by adding
any of the related defines, as specified in _mingw.h.

努力改变一点点!!
2011-06-30 09:36
快速回复:gcc中 输出"long double"应该用什么格式字符串?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017660 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved