gpt4 book ai didi

c# - 为什么 float 除以更大的 float 结果为零,我如何在 C# 中避免这种情况?

转载 作者:太空宇宙 更新时间:2023-11-03 18:48:09 24 4
gpt4 key购买 nike

我试图除以 (float)200/(float)500 但结果是 0.0。为什么会这样,我们怎么会得到 0.4 作为结果呢?非常感谢。

最佳答案

这是一个很常见的错误,每个程序员都至少犯过一次。除法运算符有两种,它们都使用相同的符号,整数和 float 。编译器根据操作数的类型选择它使用的。如果 左右操作数都是整数,那么您将得到一个整数除法。机器代码中的 idiv 指令。截断为零并产生积分结果。

只要至少 一个 操作数是 float ,您就会得到机器代码中的 fdiv 指令和您要查找的结果。就像您在问题中所做的那样,只需转换为 (float) 或 (double) 就足够了。你只需施放其中之一。或者使用像 200f 或 200.0 这样的 float

关于c# - 为什么 float 除以更大的 float 结果为零,我如何在 C# 中避免这种情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2551279/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com