• 关于无符号整型和浮点数四舍五入容易引发错误的地方(原创)


        NSMutableArray *ar = [[NSMutableArray alloc]init];

        for (int i = 0; i<[ar count]-1; i++) {

            NSLog(@"test:%d",i);

        }

    由于 [ar count] 返回为 无符号类型,[ar count]-1 将会为最大整数,此循环会一直循环而不会退出.

    如果改成 

        for (int i = 0; i<(int)[ar count]-1; i++) {

    则 不会进入循环。

    int i = 5.9;

    则不会四舍五入,i为5。

        NSString *str = [NSString stringWithFormat:@"%.1f",5.39]; 四舍五入 @"5.4"

        NSString *str = [NSString stringWithFormat:@"%.1f",5.9]; 四舍五入 @"6"

    注意浮点数在存储时会有偏差,所以4.5在数据库表示可能是4.499999999 或者 4.500000001等

    ,因此 4.5 小数点后一位四舍五入为 4.4999 当成4.4 取整4. 4.500001取整为 4.5.

    另外在无符号和有符号类型比较大小时,切记将类型转换为相同类型,当取值为负容易出现问题。

  • 相关阅读:
    对象的方法
    uni-app运行
    flex取值
    阿里矢量库使用
    移动端vue项目模板
    微信分享--转载
    页面流动条
    uni-app打包
    Hibernate~DAO
    EL表达式
  • 原文地址:https://www.cnblogs.com/iOSJason/p/4177885.html
Copyright © 2020-2023  润新知