C# 如何打印小于1但大于0的数字?
我在一个脚本中表达了power方法,在某一点上我试图做一个否定的回答,这是最后的答案 问题是它不会打印像2^-3这样的东西,也就是.125C# 如何打印小于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);
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为什么?它回答了这个问题。