无法将类型'bool'隐式转换为'double'

时间:2018-06-23 15:15:19

标签: c#

最近开始学习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));
            }
        }
    }

2 个答案:

答案 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(){...}