首页 新闻 会员 周边 捐助

算法问题急急急急急急急急急急急

0
悬赏园豆:10 [已解决问题] 解决于 2012-09-07 16:55

number1为非负任意数字

number2为定值整数

number1/number2=number3

当number3是整数写为整数,为小数时保留两位小数这应该怎么写啊!

MingHao_Hu的主页 MingHao_Hu | 初学一级 | 园豆:8
提问于:2012-08-03 10:36
< >
分享
最佳答案
1
var number1 = 1;
var number2 = 2;
var number3 = ((double)number1 / number2).ToString("#0.00");
Console.WriteLine(number3); //0.50
收获园豆:2
artwl | 专家六级 |园豆:16736 | 2012-08-03 10:43

我想要的结果是:如果是9.3/3得到的是3.1

        如果是9/3得到的是3此时不保留小数点

我是用转换后在用split分割后在去判断比较麻烦!想找到个简单点的方法

MingHao_Hu | 园豆:8 (初学一级) | 2012-08-03 10:54
其他回答(5)
0

你也太懒了

这都问 

收获园豆:2
八戒的师傅 | 园豆:1472 (小虾三级) | 2012-08-03 10:42

请指教!

我想要的结果是:如果是9.3/3得到的是3.1

        如果是9/3得到的是3此时不保留小数点

我是用转换后在用split分割后在去判断比较麻烦!想找到个简单点的方法

支持(0) 反对(0) MingHao_Hu | 园豆:8 (初学一级) | 2012-08-03 10:55
0

请给出number1和number2的数据类型。

收获园豆:2
Launcher | 园豆:45050 (高人七级) | 2012-08-03 10:48

number1为非负正数 number为正整数

我想要的结果是:如果是9.3/3得到的是3.1

        如果是9/3得到的是3此时不保留小数点

支持(0) 反对(0) MingHao_Hu | 园豆:8 (初学一级) | 2012-08-03 10:55

@MingHao_Hu:从你的示例里我才看出来 number1的数据类型是浮点型,number2是整型,你的需求转换后的问题就是如何判断一个浮点数能够被一个整数整除。那这个问题也简单,如果number1带小数,那么它肯定不能被整数整出。

if (number1 - (uint)number1 > 0.0 || (uint)number1 % number2 > 0)
{
   number3 = number1 / number2;
 }
 else
{
    number3 = (uint)number1 / number2;
}

支持(0) 反对(0) Launcher | 园豆:45050 (高人七级) | 2012-08-03 11:12
0
1 var number1 = 1;
2 var number2 = 3;
3 var number3 = number1/number2;
4 cout.precision(2);
5 cout<<number3;
收获园豆:2
dinghing | 园豆:204 (菜鸟二级) | 2012-08-03 10:59

 cout.precision(2);
cout<<number3在C#中这样写不行啊

支持(0) 反对(0) MingHao_Hu | 园豆:8 (初学一级) | 2012-08-03 11:07

@MingHao_Hu: 额,这是c++,不好意思。

c#好像这样可以,number3 = System.Math.Round(number3,2)

支持(0) 反对(0) dinghing | 园豆:204 (菜鸟二级) | 2012-08-03 11:10
0
int main(){

    bool isContinue=true;
    while(isContinue){
        __int32 x ;        //x>=0
        __int32 y ;        //y为定数
        cin >> x;
        cin >> y;
        if(x<0){
            x=-x; //如果输入负数则转换为正数
        }

        if(y==0){
            cout << "除数不能为0" << endl;        //如果除数为0退出
            return 1;
        }
        
        float result =x/(float)y;
        if(result -(__int32)result == 0){        //这里判断计算结果是不是正数
            cout << "浮点数就是整数,为" << (__int32)result << endl;
        }
        else{
             cout.precision(3);
             cout<< "最后答案为" << result << endl;
        }
        cout << "你是否继续" << endl;
        char input;
        cin >> input;
        if(input=='y' || input == 'Y'){
            isContinue = true;
        }
        else{
            isContinue = false;
        }
        
    }
    
    return 0;
}
收获园豆:1
唯吴独尊 | 园豆:707 (小虾三级) | 2012-08-03 11:08

在c和C++中可以这样写!。net中不行啊!

支持(1) 反对(0) MingHao_Hu | 园豆:8 (初学一级) | 2012-08-03 11:11

@MingHao_Hu: 你是想在.net实现 对吧

支持(0) 反对(0) 唯吴独尊 | 园豆:707 (小虾三级) | 2012-08-10 12:05
1
var floor = Math.Floor(number3); 
string output = floor == number3 ? floor.ToString("N0") : number3.ToString("N2");
收获园豆:1
水牛刀刀 | 园豆:6350 (大侠五级) | 2012-08-03 11:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册