我从服务器上取得了一串 double 型数据 24.72
于是我在接收的时候用
float amount = [[moneyDic objectForKey:@"amount"] floatValue];
这样接收下来的 amount 就变成了 24.71999993
后来把代码拆开来了
NSNumber *amountNumber = [moneyDic objectForKey:@"amount"];
amount = [amountNumber floatValue];
这种情况下:amountNumber 能正常显示 24.72 但是一旦用 floatValue 转换 数字就变成了 24.71999993
用 double 也不行同样会出现上面错误,最后用 NSDecimalNumber 解决的,但是想知道为什么,难道是因为 float 精度不够吗?
于是我在接收的时候用
float amount = [[moneyDic objectForKey:@"amount"] floatValue];
这样接收下来的 amount 就变成了 24.71999993
后来把代码拆开来了
NSNumber *amountNumber = [moneyDic objectForKey:@"amount"];
amount = [amountNumber floatValue];
这种情况下:amountNumber 能正常显示 24.72 但是一旦用 floatValue 转换 数字就变成了 24.71999993
用 double 也不行同样会出现上面错误,最后用 NSDecimalNumber 解决的,但是想知道为什么,难道是因为 float 精度不够吗?