【发布时间】:2010-12-03 21:09:42
【问题描述】:
如何计算C# 中Float 的平方根,类似于XNA 中的Core.Sqrt?
【问题讨论】:
-
使用强大的魔法 - 0x5f3759df
-
魔法就是平方根的倒数。但类似的魔法也存在于 sqrt。这会失去精度。
-
@CodeInChaos - 文章中的第二个代码示例有一个 sqrt 的实现:"请注意,唯一真正的区别在于返回值 - 而不是返回 y,而是返回数字y 作为平方根"*
-
是的。 jball 发布的内容主要是出于一种很酷的好奇心,并且只有在性能比精度更重要的情况下才有用。首先,我会使用简单的内置东西,只有在性能确实需要时才切换到复杂的解决方案,并且分析表明更改确实很重要。
-
@CodeInChaos 是绝对正确的(因此我的 "强大的魔法" 声明,而不是发布它作为答案)。除非您遇到实际的性能问题,否则始终为可读性、可维护性和准确性编写代码(例如
(float)Math.Sqrt(inputFloat))
标签: c# math square-root