C# 如何计算数字是否为立方体
我试图计算一个数字的立方根,以检查它是否是一个完美的立方体。不幸的是.NET框架没有内置的功能。因此,为了计算一个数字的立方根,我必须使用C# 如何计算数字是否为立方体,c#,math,integer,double,decimal,C#,Math,Integer,Double,Decimal,我试图计算一个数字的立方根,以检查它是否是一个完美的立方体。不幸的是.NET框架没有内置的功能。因此,为了计算一个数字的立方根,我必须使用Math.Pow函数: double cubeRoot = Math.Pow(125, (double)1 / 3); 当我尝试计算多维数据集根是否为整数时,它会输出false,但125是一个完美的多维数据集: Console.WriteLine(cubeRoot % 1 == 0); 如何克服此问题?您需要取整并检查立方根的立方体是否等于原始值 doub
Math.Pow
函数:
double cubeRoot = Math.Pow(125, (double)1 / 3);
当我尝试计算多维数据集根是否为整数时,它会输出false
,但125是一个完美的多维数据集:
Console.WriteLine(cubeRoot % 1 == 0);
如何克服此问题?您需要取整并检查立方根的立方体是否等于原始值
double input = 125;
double cubeRoot = Math.Pow(input, 1.0/3.0);
double c = Math.Round(cubeRoot);
Console.WriteLine(c*c*c == input);
请注意,Math.Pow(input,1.0/3.0)
不是计算立方根的最精确的方法,因为1.0/3.0
不能精确地用二进制(和十进制)表示。但由于我们将结果四舍五入为int,因此输出不会受到影响
添加了.NET Core 2.1,可用于获得双精度的正确结果,但我不确定它是否比
Math.Pow()解决方案快
谢谢您的回答。威廉的回答确实不正确,因为我在寻找其他立方体。