C# double无法按预期工作。

21 浏览
0 Comments

C# double无法按预期工作。

我理解double是一个十进制数。

在下面的程序中,输出结果是1,尽管我认为它应该是1.05循环。

static void Main(string[] args)
{
    double d = 19 / 18;
    Console.WriteLine(d);
    Console.ReadKey();
}

我对double的理解错了吗?

0
0 Comments

C#中的double类型无法按预期工作的原因是你误解了整数运算。当使用整数除法时,结果将会是一个整数,而不是double类型。不管你将运算结果赋值给double变量,这个计算仍然会得到一个整数。

要修复这个问题,你可以使用以下方式:

double d = 19.0 / 18.0;

或者 double d = 19d / 18d;

或者 double d = 19.0 / 18 或者 double d = 19 / 18.0 或者 double d = 19d / 18 或者 double d = 19 / 18d 🙂

或者过度使用以下方式:double d = Convert.ToDouble(19) / Convert.ToDouble(18); lol

0