美文网首页
NSString转NSNumber数据精度问题

NSString转NSNumber数据精度问题

作者: 北纬49度的雨 | 来源:发表于2018-08-27 15:25 被阅读0次

    产品的需求是这样的:1.小数点后有数据最多保留2位;2.小数点后只显示到最后一位不为0的那位;

    然后解析数据。。哒哒哒。。。我屮艸芔茻,这是什么??

    果断去找php的茬,然后。。打印正确,再然后。。安卓也正确。。然后,硬生生被怼了回来。


    经过查看文档发现,NSNumber的description方法存在一定缺陷,转换成NSString类型时发生了精度的丢失,部分数值由float表示时位数不够,导致了出错,换成double类型之后能够解决。但是如果直接doubleValue的话可能表示的位数还是.f,精度上还是不够的。

    +(NSString *)reviseString:(NSString *)str

    {

        double value = [str doubleValue];

        NSString *temp = [NSString stringWithFormat:@"%lf", value];

        NSDecimalNumber *resultNumber = [NSDecimalNumber  decimalNumberWithString:temp];

        return [resultNumber stringValue];

    }

    相关文章

      网友评论

          本文标题:NSString转NSNumber数据精度问题

          本文链接:https://www.haomeiwen.com/subject/yjoziftx.html