c# - 小数的 N 次根在 C# 中返回意外结果

标签 c# .net math floating-point

当我尝试使用 C# 对一个小数求 N 次根时,我得到了一个错误的数。

例如,当我试图对 1.07 求三次方根时,我得到 1,这显然不是真的。

这是我用来获取第三根的确切代码。

MessageBox.Show(Math.Pow(1.07,(1/3)).toString());

我该如何解决这个问题?

我猜这是一个浮点运算问题,但我不知道如何处理。

最佳答案

C# 将 1 和 3 视为整数,您需要执行以下操作:

Math.Pow(1.07,(1d/3d))

Math.Pow(1.07,(1.0/3.0))

这其实很有趣,因为隐式扩大转换会让你犯错误。

关于c# - 小数的 N 次根在 C# 中返回意外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1546818/

相关文章:

c# - XP 中的 XAML 用户控件问题

c# - InvalidOperationException,调用线程应该是STA,因为

php - 动态生成词云?

math - 将 3d 面绘制为 2d

python - 为什么我的指数衰减不起作用?

c# - EF4 : Why does proxy creation have to be enabled when lazy loading is enabled?

c# - 检查 'this' 是否实现了一个接口(interface),然后从子类的通用基类内部调用它的成员?

c# - 当 SUIT 利用任务并行库时使用 Mocks 进行单元测试

.net - RX : how to parallelize some long running tasks and synchronize others

c# - 在 WPF Calendar 控件中设置显示月份