处理 double
数据类型时乘以倒数是好是坏?
哪种方式更快? 哪种方式使用更少的内存? 首选哪种方式?
MSIL 如何处理这个问题?
SquareInches = MMSquared / 645.16
SquareInches = MMSquared * 0.0015500031000062000124000248000496
NB: 10K users will note that this is a duplicate of this question, which was deleted because the original question asker decided to berate everyone in the 'comments' section of the question.
此问题已重新发布,因为它是一个“好”问题。
请“取消选中”Community Wiki 以获得您的答案,因为我只是将其作为 CW 发布,这样它就不会被视为“声誉”抢夺。
相关问题:
最佳答案
乘以倒数更快。编译器不会自动优化它,因为它会导致精度损失很小。 (这实际上出现在 Walter Bright 经常光顾的 D 新闻组中,他明确表示编译器不会自动执行此操作。)您通常应该除法,因为它更具可读性和准确性。
如果您在一个循环中执行一段浮点代码十亿次并且您不关心精度的小损失并且您将除法多次乘以相同的数字,然后乘以倒数可以是一个很好的优化。实际上,在一些情况下,我已经在现实世界中获得了显着的加速,例如通过乘以逆函数所描述的情况,但这些是循环执行数十亿次的极端边缘情况,除了乘 float 之外几乎什么都不做。
关于.net - 乘以逆是好是坏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/655537/