C# 将数字返回到其双精度值

C# 将数字返回到其双精度值,c#,numbers,C#,Numbers,我正在创建一个程序来评估输入的数字,例如,我输入了5,该函数应该能够返回数字,这意味着: 5 => 500 4 => 400 6 => 600 10 => 1000 and so on. 这就是我到目前为止所做的 public int NumberEval(int theNumber) { int theResult = 0; switch (theNumber) { case 0: th

我正在创建一个程序来评估输入的数字,例如,我输入了5,该函数应该能够返回数字,这意味着:

5  => 500   
4  => 400  
6  => 600 
10 => 1000 and so on.
这就是我到目前为止所做的

public int NumberEval(int theNumber)
{
    int theResult = 0;
    switch (theNumber)
    {
        case 0:
            theResult = 1;
            break;
        case 1:
            theResult = 1;
            break;
        case 2:
            theResult = 200;
            break;
        case 3:
            theResult = 300;
            break;
        case 4:
            theResult = 400;
            break;
        case 5:
            theResult = 500;
            break;
        case 6:
            theResult = 600;
            break;
        case 7:
            theResult = 700;
            break;
        case 8:
            theResult = 800;
            break;
        case 9:
            theResult = 900;
            break;
        case 10:
            theResult = 1000;
            break;
        case 11:
            theResult = 1100;
            break;
        case 12:
            theResult = 1200;
            break;
        case 13:
            theResult = 1300;
            break;
        case 14:
            theResult = 1400;
            break;
        case 15:
            theResult = 1500;
            break;
        case 16:
            theResult = 1600;
            break;
        case 17:
            theResult = 1700;
            break;
        case 18:
            theResult = 1800;
            break;
        case 19:
            theResult = 1900;
            break;
        case 20:
            theResult = 2000;
            break;
        default:
            break;
    }
    return theResult;
} 

我的问题是,如果我输入50,那么它应该是5000。因为我不想手动对switch语句中的每个项进行编码,所以有没有办法简化此方法?或者甚至是一个数学方程式?

为什么不简单地与
100相乘,如下所示:

public int NumberEval(int theNumber)
{
    if(theNumber == 0 || theNumber == 1)
       return 1;
    else
       return theNumber * 100;
}
这是给你的礼物。您可以简化以下语句:

return theNumber == 0 || theNumber == 1 ? 1 : theNumber * 100;  

这不是一个输入为*100的模式吗?我认为您可以编写一个方法,接受输入并将其乘以100。但需要注意的是,当输入足够大,足以溢出整数精度时,精度截断

乘以100?。。。除非编号==1
==0
,在这种情况下只需返回1(除非您的问题中有输入错误?)。作为将来的参考,你应该问自己的第一个问题是“我怎么知道我想要返回什么?”也就是说,是什么让你认为如果
theNumber==9
你应该返回900?如果你这样做了,并提出了“因为9*100=900”,这将给你一个提示,告诉你如何解决这个问题,而不必对每个答案进行硬编码。你必须使用开关吗?一些溢出的值将需要输入。非常感谢,先生,这是我正在寻找的你好,谢谢你的提示,但我如何避免呢。我是编程新手,所以我对整数精度不太了解。