| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4156 人关注过本帖
标题:关于四舍五入问题
只看楼主 加入收藏
奔跑的大师
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2015-11-28
收藏
得分:0 
但是如果我有很多个这样的小数需要我输出的时候怎么办?难道我这时需要一行一行的打吗,太占用内存了。
2015-12-15 22:09
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用奔跑的大师在2015-12-15 22:09:12的发言:

但是如果我有很多个这样的小数需要我输出的时候怎么办?难道我这时需要一行一行的打吗,太占用内存了。

傻啊,要取多少位,把字符串对应的位末尾赋值为'\0'輸出就是了,那个位数怎么变,都是一个变量的代码。你动手写就知道了。

授人以渔,不授人以鱼。
2015-12-15 22:10
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
char buffer[50];     // 字符串缓冲区
for ()               // 你的循环
{
    sprintf(buffer, "%f", 浮点数);
    int i = 你要截取的动态位数;
    char* p = strchr(buffer, '.');     // 用strchr()找出小数点位置
    *(p + i + 1) = '\0';
    printf("%s", buffer);
}

如果你最终的输出的定宽的,更简单更快,连查找动作都不用。

[此贴子已经被作者于2015-12-15 22:24编辑过]


授人以渔,不授人以鱼。
2015-12-15 22:19
kehanping
Rank: 2
等 级:论坛游民
威 望:1
帖 子:25
专家分:88
注 册:2015-12-10
收藏
得分:0 
建立一个输出函数,参数是a和n就好了
void prin(folat a, int n)
{
    printf("%f",(((int)a*pow(10,n)))*1.0/pow(10,n));   
}
2015-12-15 22:26
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
一个pow()已经够慢了,何况一次两个,还是每次迭代都执行。

授人以渔,不授人以鱼。
2015-12-15 22:39
W2365
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2016-12-29
收藏
得分:0 
回复 楼主 奔跑的大师
学习了


[此贴子已经被作者于2016-12-29 03:03编辑过]

2016-12-29 03:00
快速回复:关于四舍五入问题
数据加载中...
 
   



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

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