如何打印小于1但大于0的数字?

时间:2014-02-07 00:07:09

标签: c#

我在脚本中表达了power方法,有时我试图做一个否定的,这是1 / final_answer

事情是它不打印诸如.125

的2 ^ -3之类的东西
using System;

class MainClass
{
static void Main()
{
    Console.Write ("Enter a base number: ");
    string str_x = Console.ReadLine ();
    double x = double.Parse (str_x);

    Console.Write ("Enter an exponent: ");
    string str_n = Console.ReadLine ();
    double n = double.Parse (str_n);

    double final = 1;
    int count = 1;
    while (count != n+1) {
        final = final * x;
        count++;
    }
    if (n < 0)
        final = 1 / final;


    Console.WriteLine(final);
}

}

2 个答案:

答案 0 :(得分:2)

首先,循环

int count = 1;
while (count != n + 1)
    final = final * x;
    count++;
}
如果n == -3 count始终为正,则

无法结束。

此外,它可能是无限循环,因为您比较intdouble

double n = float.Parse (str_n);
....
int count = 1;
while (count != n + 1) {

您应避免将==!=与双打一起使用。

答案 1 :(得分:0)

对于指数的负值,您的循环永远不会终止,因为count永远不会达到负值(或零),至少在它溢出之前。

正如其他人所说,将指数读作整数,而不是双数。