gpt4 book ai didi

iphone - 比较运算符无法正常工作 Xcode

转载 作者:行者123 更新时间:2023-11-29 04:35:39 24 4
gpt4 key购买 nike

我正在为我的学生制作一个评分应用程序,但我的比较运算符没有按照我期望的方式运行。我的代码如下;

float FINAL = ((_gradeyouwant - (_quarter1 * 0.2f) - (_quarter2 * 0.2f) - (_quarter3 * 0.2f) - (_quarter4 * 0.2f) - (_quarterM * 0.1f)) / 0.1f);

NSLog(@"q1 = %.2f", _quarter1);
NSLog(@"q2 = %.2f", _quarter2);
NSLog(@"q3 = %.2f", _quarter3);
NSLog(@"q4 = %.2f", _quarter4);
NSLog(@"qM = %.2f", _quarterM);
NSLog(@"qF = %.2f", FINAL);
NSLog(@"grade = %.2f", _gradeyouwant);

if ((FINAL > 4.3f))
{
[_result setText:[NSString stringWithFormat:@"It is not possible to get your desired grade."]];
}else if ((FINAL > 4.0f))
{
[_result setText:[NSString stringWithFormat:@"You would need to get an A+"]];
}else if ((FINAL > 3.7f))
{
[_result setText:[NSString stringWithFormat:@"You would need to get an A"]];
}else if ((FINAL > 3.3f))

ETC. ETC.

当您使用 NSLog 查看输出时,它会告诉我所有内容的正确值。但是,如果我将 FINAL 设置为 4.0,则它不会打印正确的字符串。我想当它到达 FINAL > 4.0 时,它不会运行该行。但确实如此。我究竟做错了什么?非常感谢!

最佳答案

这几乎就是 float 的工作原理。谷歌一下,例如http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm

系统可能无法精确存储4.0。这更多的是 CPU 和数据类型选择的限制。使用范围可能会很有效。

我会使用 int 并模拟十进制数字,例如GPA * 100。

关于iphone - 比较运算符无法正常工作 Xcode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11091520/

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