搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 这个数字为什么要进位呢
标题:
这个数字为什么要进位呢
只看楼主
震中地带
等 级:
职业侠客
威 望:
2
帖 子:171
专家分:359
注 册:2012-3-26
第
11
楼
得分:0
回复 9楼 TonyDeng
谢谢!确实是不知道这个功能
2012-06-04 22:33
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
12
楼
得分:10
printf()本身有四舍五入功能。但是需要注意,即使printf()没有这种功能,但按1楼的算法这样做,要留意陷阱:乘以100的时候,防止数据溢出!虽然较小的数字通常不会溢出,但作为算法,是要考虑的,要么在代码上面注释清楚。更严重的隐患,可能在计算机储存浮点数的机制上,乘除100,人看起来问题不大,但计算机未必,有可能失真的。
[
本帖最后由 TonyDeng 于 2012-6-4 23:35 编辑
]
授人以渔,不授人以鱼。
2012-06-04 23:33
a6717079
等 级:
新手上路
帖 子:11
专家分:0
注 册:2010-4-17
第
13
楼
得分:0
回复 2楼 icysky
我本来只想截取前两位,不知道%.2f有进位的功能。
[
本帖最后由 a6717079 于 2012-6-5 21:29 编辑
]
2012-06-05 21:24
a6717079
等 级:
新手上路
帖 子:11
专家分:0
注 册:2010-4-17
第
14
楼
得分:0
回复 7楼 震中地带
这个本来是想编一个算法,对double数据类型进行四舍五入,结果保留两位有效小数。
思路是这样的:将数据乘100,加0.5是看是否需要进位,然后得到的数强制取整,再除以100,就得到想要的2位小数数据。
1
2012-06-05 21:38
a6717079
等 级:
新手上路
帖 子:11
专家分:0
注 册:2010-4-17
第
15
楼
得分:0
回复 12楼 TonyDeng
那我不想让它四舍五入,只截取呢,改怎么写?
2012-06-05 21:40
shanshan3003
等 级:
论坛游民
帖 子:53
专家分:66
注 册:2011-8-29
第
16
楼
得分:0
也就是说强制转换就不是四舍五入,而这样运算就是四舍五入了,真的是啊!
2012-06-05 21:57
shanshan3003
等 级:
论坛游民
帖 子:53
专家分:66
注 册:2011-8-29
第
17
楼
得分:0
强制转化了
2012-06-05 21:58
怪敏宝宝
等 级:
新手上路
帖 子:5
专家分:6
注 册:2012-6-6
第
18
楼
得分:0
a = 123.453643
b = 12345.8643
c = 123.458643
保留小数点后两位不就是123.46了
2012-06-06 18:02
18
2/2页
1
2
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-370740-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.432313 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved