gpt4 book ai didi

objective-c - Objective-C 中的计算

转载 作者:行者123 更新时间:2023-12-03 16:49:03 25 4
gpt4 key购买 nike

谁能向我解释一下为什么它应该返回值 42 时却一直返回 0?它在纸上有效,所以我知道数学是正确的,我只是想知道为什么它不能翻译?

    int a = 60;
int b = 120;
int c = 85;
int progress;

progress = ((c-a)/(b-a))*100;

NSLog(@"Progess = %d %%",progress);

最佳答案

这是因为你的数学全部使用整数。

特别是,您的内部表达式正在计算 25/60,在整数数学中为零。

实际上,您的表达式过度括号,并且计算结果的顺序导致整数舍入问题。

如果你这样写公式的话,效果会很好:

progress = 100 * (c - a) / (b - a);

因为 100 * (c - a) 首先会计算为 2500,然后除以 60 得到 41。

另一种选择,如果变量 abc 中的任何一个(或多个)是 float code>(或强制转换)该等式也有效。

这是因为其中任一操作数为浮点的表达式将导致另一个(整数)操作数提升为浮点,同样,此时表达式的结果也将是 float

关于objective-c - Objective-C 中的计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10250566/

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