注册 登录
编程论坛 C++教室

新手求大神帮忙

夜尽 发布于 2012-12-03 22:15, 445 次点击
小弟大一新生,对C++还不熟练,编了个4舍5入的代码,很不好,对于像1.999或者1.9这样的数还是不能进到2,而且整数也会4舍5入,怎么才能解决这些问题呢?求大神指教,谢谢。
#include<iostream>
using namespace std;
int main()
{
    int a,i=0,k=0;
    char b[10000],ch;
    while(ch!='#')
    {
        b[i++]=ch;
        cin>>ch;
    }
    if(b[i-1]>='5')
    {
        a=b[i-2]-'0';
        b[i-2]=a+1+'0';
        while(a==9)
        {
            a=b[i-3-k]-'0';
            b[i-3-k]=a+1+'0';
            b[i-2-k]='0';
        }
    }
    for(int j=0;j<i-1;j++)
        cout<<b[j];
    return 0;
}
6 回复
#2
lyj1232012-12-04 20:12
小弟大一新生,对C++还不熟练,编了个4舍5入的代码,很不好,对于像1.999或者1.9这样的数还是不能进到2,而且整数也会4舍5入,怎么才能解决这些问题呢?求大神指教,谢谢。
今天没时间看代码了,不过为什么四舍五入要那么麻烦呢?
    double x=153.7;
 把一个double 型的转化为四舍五入  直接   int(x+0.5);就可以了


    高精度只需要一点点小技巧,也是如上即可
#3
StarFall2012-12-05 07:21
楼上这个思路好 。。
#4
mmmmmmmmmmmm2012-12-05 09:12
2楼好思路啊
#5
夜尽2012-12-05 15:48
回复 2楼 lyj123
噢,这样啊!谢谢谢谢!
#6
小小小火柴2012-12-05 22:06
  觉得,代码没意义!还是2楼好!
#7
夜尽2012-12-06 12:33
回复 6楼 小小小火柴
新手新手,多多指教
1