C++如何四舍五入保留两位小数

时间:2015.11.27 发布人:TL霸天

C++如何四舍五入保留两位小数

已解决问题

谷歌TL霸天用户在2015.11.27提交了关于“无限恐怖C++如何四舍五入保留两位小数”的提问,欢迎大家涌跃发表自己的观点。目前共有3个回答,最后更新于2024-08-15T07:29:03。

我的程序如下

#include<cstdio>

doublea;

intmain()

{

scanf("%lf",&a);

printf("%.2lf",a);

}

而这个程序有漏洞

2.255显示的答案不是2.26而是2.25

123.975显示答案也不是123.98而是123.97


有人能告诉我怎么做吗,我实在没辙了。


最好程序不要太长太烦,我记不住。。

希望大家能够帮助她。

详细问题描述及疑问:

我的程序如下

#include<cstdio>

doublea;

intmain()

{

scanf("%lf",&a);

printf("%.2lf",a);

}

而这个程序有漏洞

2.255显示的答案不是2.26而是2.25

123.975显示答案也不是123.98而是123.97


有人能告诉我怎么做吗,我实在没辙了。


最好程序不要太长太烦,我记不住。。

期待您的答案,你就是当代的活雷锋,太感谢了 !
希望以下的回答,能够帮助你。

第1个回答

用户名:.极客大叔.  

四舍五入其始是类似如下操作,即便是函数实现:

a+0.005//根据你要保留的位数来决定小数点后有多少个0

比如取整,那就是+0.5,保留一位,就+0.05、、、、以此类推

相应代码改为如下:

printf("%.2lf",a+0.005);

第2个回答

用户名:Xa值甲投加提黑项汽胜空vier.Wen  

电脑是不各管待封且点表兰顶诉蒸会四舍五入的,要你自己设计判断是否要四舍五入的~

第3个回答

用户名:老牛歪歪  

printf("%.2lf",a);改为p燃益油夜洋别我rintf("结果是:%.2f\n",a)

%2f是按2位输出,%.2f是按小数部分保留两位输出