Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何打印小于1但大于0的数字?_C# - Fatal编程技术网

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

C# 如何打印小于1但大于0的数字?,c#,C#,我在一个脚本中表达了power方法,在某一点上我试图做一个否定的回答,这是最后的答案 问题是它不会打印像2^-3这样的东西,也就是.125 using System; class MainClass { static void Main() { Console.Write ("Enter a base number: "); string str_x = Console.ReadLine (); double x = double.Parse (str_x);

我在一个脚本中表达了power方法,在某一点上我试图做一个否定的回答,这是最后的答案

问题是它不会打印像2^-3这样的东西,也就是.125

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);
}
使用系统;
类主类
{
静态void Main()
{
控制台。写入(“输入基数:”);
字符串str_x=Console.ReadLine();
double x=double.Parse(str_x);
Console.Write(“输入指数:”);
字符串str_n=Console.ReadLine();
double n=double.Parse(str_n);
双决赛=1;
整数计数=1;
而(计数!=n+1){
final=final*x;
计数++;
}
if(n<0)
最终=1/最终;
控制台写入线(最终);
}
}首先,循环

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

此外,这可能是一个无休止的循环,因为您比较
int
double

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

您应该避免使用
==
=

使用指数的负值,循环永远不会终止,因为计数永远不会达到负值(或零),至少在溢出之前是这样


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

对不起,我更新了scrit使其成为双精度。Parse。我可以打印出正指数,但如果是负指数,它会冻结。有什么理由不使用Math.Pow调用吗?你确定你不是指
count!=在
while
条件下的Math.Abs(n)+1
?是的,作业说明不是to@MillieSmith我很确定我是说Math.Pow。@dvnrrs对于这个误会我很抱歉,如果我(无意中)表现得势利我也很抱歉。我删除了我的评论。谢谢你之前的评论!我猜就寝时间:)+1表示负值!这应该是评论,而不是回答。@aevitas为什么?它回答了这个问题。