vb.net cube root给出了错误的值?

时间:2013-11-30 04:17:41

标签: vb.net math

我只是在寻找一种在vb.net中获取多维数据集根源的方法。在线共识是使用公式:

<number> ^ (1 / 3)

我尝试将其中的一些打到了即时窗口中,这就是我得到的:

?1 ^ (1 / 3)
1.0
?8 ^ (1 / 3)
2.0
?27 ^ (1 / 3)
3.0
?64 ^ (1 / 3)
3.9999999999999996

等一下......难道答案不应该是4.0吗?发生了什么? 4 * 4 * 4 = 64,而不是3.9999999999999996 * 3.9999999999999996 * 3.9999999999999996 = 64.我通常对数学问题很好,但是我花了太多时间用这个,我可以使用一些帮助。我没有兴趣找出为什么这个失败了,因为我感兴趣的是如何使用数字64来完成这项工作并尝试将立方根设置为等于4。

1 个答案:

答案 0 :(得分:0)

这对我有用:

Private Function CubedRoot(ByVal dNum As Double) As Double

        Return CType(CType(dNum ^ (1 / 3), Decimal), Double)

End Function