免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6542 | 回复: 9
打印 上一主题 下一主题

[C++] [求助]VC++6.0 Double类型的有效位数问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-06-21 11:26 |只看该作者 |倒序浏览
各位好:

小弟今天又要来请教了......

昨天计算了个Double类型的数据,但是只想要小数点之后的6位

而且还要附带4舍5入的操作的.....

有没有这方面的文章啊?????谢谢了!!!!找了很长时间没找到.

论坛徽章:
0
2 [报告]
发表于 2006-06-21 11:29 |只看该作者
没有的话自己写一个,不难

论坛徽章:
0
3 [报告]
发表于 2006-06-21 13:05 |只看该作者
就是因为我自己不太会写,所以想找点参考的

论坛徽章:
0
4 [报告]
发表于 2006-06-21 16:15 |只看该作者
vc6好像没有round函数,自己写一个吧。

论坛徽章:
0
5 [报告]
发表于 2006-06-21 20:48 |只看该作者

  1. double d=0.1234565;

  2. __int64 i = (__int64)((d*1000000)+0.5);

  3. d = (double)i/1000000;
复制代码

论坛徽章:
0
6 [报告]
发表于 2006-06-22 10:40 |只看该作者
谢谢Alligator27 !

还想问下,__int64是int类型的封装,书上没有说到过.就是通过这个先将数据转换成整型

然后在除以指定的有效数值,这样就能得到需要的小数点后的有效位数了是吧????

我已经试过了,可以的..

但是还有个问题,里面的小数点后面的位数,不能进行4舍5入的操作的.......

[ 本帖最后由 我好麻烦 于 2006-6-22 11:08 编辑 ]

论坛徽章:
0
7 [报告]
发表于 2006-06-22 20:58 |只看该作者
原帖由 我好麻烦 于 2006-6-22 10:40 发表
谢谢Alligator27 !

还想问下,__int64是int类型的封装,书上没有说到过.就是通过这个先将数据转换成整型

然后在除以指定的有效数值,这样就能得到需要的小数点后的有效位数了是吧????

我已经试过了,可以的. ...


我试的可以, 上面的code, 你试试d是多少?

论坛徽章:
0
8 [报告]
发表于 2006-06-23 10:48 |只看该作者
问下,加上个0.5有什么用吗??????

这个我再去试试

论坛徽章:
0
9 [报告]
发表于 2006-06-23 10:53 |只看该作者
原帖由 我好麻烦 于 2006-6-23 10:48 发表
问下,加上个0.5有什么用吗??????

这个我再去试试

这个恐怕一时说不清, 你最好问问身边的朋友.

论坛徽章:
0
10 [报告]
发表于 2006-06-23 11:21 |只看该作者
好的,我试过了,加个0.5相当于就是在做4舍5入的操作

不加0.5,就是做一般的有效位计算,所以0.5就是这个用吧,蛮奇怪的

谢谢了饿
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP