最近开始学习C#,但仍然不太了解类型如何产生这样的错误,我的代码应该返回true或false,但是返回以下错误消息。
.. \ Playground(32,15):错误CS0029:无法将类型'bool'隐式转换为'double'
这是我的代码,谁能解释我为什么收到此错误消息?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SoloLearn
{
class Program
{
static void Main(string[] args)
{
double fPrime(double n)
{
if (n==2){
return true;
}
return Math.Pow(2,n-1)%n==1;
}
//Example usage
Console.WriteLine(fPrime(7));
}
}
}
答案 0 :(得分:2)
您将返回一个 Boolean
值,并且您的函数定义将返回double,将其更改为
bool fPrime(double n)
答案 1 :(得分:0)
您的方法返回一个双精度型。因此,如果您想返回布尔值(即true或false),则需要更改方法签名
bool isPrimeNum(double n)
{
if (n==2){
return true;
}
return Math.Pow(2,n-1)%n==1;
}
最好为返回布尔值的方法加上 is 作为前缀,例如:
isPrimeNum(){...}