Math.Sqrt(2/3)返回0

Joh*_*ris 1 c#

我真的很困惑为什么会发生这种情况,我的代码:

double x = Math.Sqrt(2/3);
MessageBox.Show(x.ToString());
Run Code Online (Sandbox Code Playgroud)

显示0.答案是

0.8164,我知道我也必须使用Math.Round来解决这个问题,但目前我的问题是0

Ema*_*mad 10

问题是由数字的自动整数评估引起的.使用:

double x = Math.Sqrt(2f/3f);
MessageBox.Show(x.ToString());
Run Code Online (Sandbox Code Playgroud)

  • 这意味着将数字视为浮点数. (5认同)