分享

iOS float类型失真的问题,去掉浮点多余位

 宇智波瞬润 2016-06-16

对于这个问题,也只有金融行业会使用到,代码如下
((float)(round(i*1000.0)/1000))
1000 代表保留到三位小数,这样我们可以过滤掉0.05000008这样的异常数据,倒是程序出现错误,

在看一段循环计算代码,经过下面这样计算才算正确的使用,不再有失真的数据了,

    for (float i = 0.0f ; ((float)(round(i*1000.0)/1000))<= (((int)stopLossingIndex)*(float)(roundf(priceStep*1000.0)/1000)); i+=(float)(roundf(priceStep*1000.0)/1000)) {
        i = (float)(round(i*1000)/1000);


        if (i!=0.0f){
             NSLog(@"i=%f",i);
//            NSString * forstr = [NSString stringWithFormat:@"%.2f",i];

            [tmpStopLossing addObject:[NSString stringWithFormat:@"%g",i]];

            NSLog(@"%@",tmpStopLossing);

        }
    }

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多