带浮点值的NSDictionary返回错误的转换

时间:2018-03-14 09:11:48

标签: ios iphone nsdictionary data-conversion

我有NSDictionary浮动值,我正在尝试获取这样的值

[[NSDictionary valueForKey:@"some_value"] floatValue];

但看起来价值没有正确舍入。

例如: 我在字典中有价值:@"0.35"但在上述转化后返回0.34999999403953552 float value@"0.15"转换为0.15000000596046448等。

3 个答案:

答案 0 :(得分:0)

当您将值从字符串转换为float时,它会丢失其精度,因此您必须再次格式化它。请看下面的问题,你会更好地了解它。

Make a float only show two decimal places

答案 1 :(得分:0)

将Dictionary值转换为float

NSString *str = [dict objectForKey:@"key"];
CGFloat strFloat = (CGFloat)[str floatValue];

答案 2 :(得分:0)

试试这段代码,它会对你有用。测试!

float myFloatValue= 2345.678990;
NSString* formattedNumber = [NSString stringWithFormat:@"%.02f", myFloatValue];
NSLog(@"Changed Float Value:%@",formattedNumber);