没有得到正确的球体体积
Not getting correct volume of sphere
这是我的代码
double inputrad = Convert.ToDouble(Console.ReadLine());
double circlevolume = 4/3 * Math.Pow(circlerad, 3) * Math.PI;
半径为2.5的圆的体积是65,我却变成了49,为什么?
你需要写类似4/3.0
或4.0/3
或4/3d
等的东西。否则你正在使用整数除法4/3
这将准确给出 1
.
您也可以按照 Dmitry Bychenko 的建议,在应用除法之前更改运算顺序以获得浮点结果:
4 * Math.PI / 3 * Math.Pow(circlerad, 3)
.
关键是,整数除以整数是整数除法,你绝对需要避免这种情况。
有关更多信息,您可以在此处查看此问答:Why does integer division in C# return an integer and not a float?
这是我的代码
double inputrad = Convert.ToDouble(Console.ReadLine());
double circlevolume = 4/3 * Math.Pow(circlerad, 3) * Math.PI;
半径为2.5的圆的体积是65,我却变成了49,为什么?
你需要写类似4/3.0
或4.0/3
或4/3d
等的东西。否则你正在使用整数除法4/3
这将准确给出 1
.
您也可以按照 Dmitry Bychenko 的建议,在应用除法之前更改运算顺序以获得浮点结果:
4 * Math.PI / 3 * Math.Pow(circlerad, 3)
.
关键是,整数除以整数是整数除法,你绝对需要避免这种情况。
有关更多信息,您可以在此处查看此问答:Why does integer division in C# return an integer and not a float?