美文网首页
OC、swift数据JSON序列化后,浮点型数据丢失的问题

OC、swift数据JSON序列化后,浮点型数据丢失的问题

作者: zhaocarbon | 来源:发表于2020-01-08 15:15 被阅读0次

    出现的问题:服务后端定义的数据类型为float、double时,前端进行序列化时数据精度丢失。

    要么在后端处理,定义为string类型。要么在前端处理,将float、double转化为string!!

    注意:在序列化前调用此方法!!

    + (NSString *)doubleConvertString:(NSString *)source

    {

        NSString *targetStr = [NSString stringWithFormat:@"%@",source];

        if (source.length == 0)

        {

            return targetStr;

        }

        NSUInteger index = 0;

        NSString *p = [targetStr substringToIndex:1];

        NSString *rStr = p;

        NSString *lChar = p;

        NSString *llid = nil;

        BOOL inserted = false;

        NSArray *tarry = @[@"0",@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9"];

        while (index < targetStr.length-1)

        {

            index++;

            NSString *currChar = [targetStr substringWithRange:NSMakeRange(index, 1)];

            BOOL cf = [tarry containsObject:currChar];

            if ([lChar isEqualToString: @":"] && cf && [llid isEqualToString:@"\""])

            {

                inserted = true;

                rStr = [rStr stringByAppendingString:@"\""];

                llid = @"";

            }

            else if (inserted && ([currChar isEqualToString: @"}"] || [currChar isEqualToString: @","]))

            {

                inserted = false;

                rStr = [rStr stringByAppendingString:@"\""];

            }

            rStr = [rStr stringByAppendingString:currChar];

            if (currChar.length > 0 && ![currChar isEqualToString:@" "])

            {

                if ([currChar isEqualToString:@"\""])

                {

                    llid = currChar;

                }

                else if (![currChar isEqualToString:@":"])

                {

                    llid = @"";

                }

                lChar = currChar;

            }

        }

        return rStr;

    }

    相关文章

      网友评论

          本文标题:OC、swift数据JSON序列化后,浮点型数据丢失的问题

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