浮点变量值为1.000000和1.0常量比较相等吗?

简介: 浮点变量值为1.000000和1.0常量比较相等吗?

浮点变量值为1.000000和1.0常量比较相等吗?

答案是不相等,这涉及是精确度的问题,并且这样的比较很费时间,最好不要这样比较。只需要两者差的绝对值低于一定的值就认为相等就可以了。

        NSLog(@"progress = %lf, !self.buffered:%d, (progress == 1.0):%d",progress, !self.buffered, (progress == 1.0));
        self.progress  = progress;
        
        //如果缓冲完了,拖动进度条不需要重新显示缓冲条
        if (!self.buffered) {
            if (fabs(1.0 - progress) <= 0.001) {
                self.buffered = YES;
                [self.vpToolsView.activityIndicator stopAnimating];
                self.vpToolsView.activityIndicator.hidden = YES;
            }
            [self.vpToolsView.bufferPV setProgress:progress];
        }
        NSLog(@"yon = %@",self.buffered ? @"yes" : @"no");


打印日志


2021-04-30 14:28:10.086136+0800 光予露家长端[19904:3336931] progress = 1.000000, !self.buffered:1, (progress == 1.0):0

目录
相关文章
|
5月前
|
存储 开发者
如何确定常量的类型
在编程中,常量是程序中值不会改变的量。确定常量的类型是非常重要的,因为它直接影响了程序的效率和可读性。选择正确的常量类型可以确保程序占用更少的内存,运行更快,并且更容易理解和维护。
41 2
|
存储
3.2.6 怎样确定常量的类型
3.2.6 怎样确定常量的类型
40 0
|
4月前
|
存储 Java 程序员
|
5月前
|
存储 弹性计算 运维
添加两个值
【4月更文挑战第29天】
28 4
|
5月前
|
存储 弹性计算 运维
添加多个值
【4月更文挑战第29天】
22 2
|
5月前
59.已知xxz+yzz=532,求所有可能的x,y,z的值
59.已知xxz+yzz=532,求所有可能的x,y,z的值
36 0
|
存储 编译器 Linux
关于枚举常量手误带来的错误
关于枚举常量手误带来的错误
91 0
|
存储 编译器
不同类型的变量与零究竟是如何比较(2)
不同类型的变量与零究竟是如何比较
118 0
不同类型的变量与零究竟是如何比较(2)