首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >打印浮点值时出现奇怪的行为

打印浮点值时出现奇怪的行为
EN

Stack Overflow用户
提问于 2012-01-11 16:37:20
回答 3查看 84关注 0票数 1

Тhese是我的计算

代码语言:javascript
复制
float c = 5.0 * (12.0 - 32.0) / 9.0;
printf("%f.2", c);

结果是-11.111111.2,但我预期是-11.11。出什么问题了?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-01-11 16:38:10

格式说明符应为"%.2f"

在您现在拥有的东西中,.2放错了地方。这就是为什么您会得到比预期更多的位数,以及为什么.2会原封不动地出现在输出的末尾。

票数 5
EN

Stack Overflow用户

发布于 2012-01-11 16:40:40

代码语言:javascript
复制
printf("%f.2", c);

应更改为

代码语言:javascript
复制
printf("%.2f", c);

更新代码如下:

代码语言:javascript
复制
$ cat f.c 
#include <stdio.h>

int main()
{
    float c = 5.0 * (12.0 - 32.0) / 9.0;
    printf("%.2f \n", c);

    return 0;
}
$ gcc f.c 
$ ./a.out 
-11.11 
$ 
票数 2
EN

Stack Overflow用户

发布于 2012-01-11 19:43:55

您需要更改float的格式规范;因为它是不正确的,而不是使用

代码语言:javascript
复制
printf("%f.2", c);

尝试使用以下命令:

代码语言:javascript
复制
float c = 5.0 * (12.0 - 32.0) / 9.0;
printf("%1.2f", c); 

这应该是可行的!:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8816346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档