【发布时间】:2014-07-01 08:06:37
【问题描述】:
我有一个浮点数 var1 = cashInHandAmount = 4.73000002 我只是想: var2 = 4.73。
我试过这样:
NSString *floatString = [NSString stringWithFormat:@"%.02f",cashInHandAmount];//it prints 4.73
[self.editcash setMaxValue:[floatString floatValue]];//but it again sets 4.73000002 why?
你们能帮我解决这个问题吗?
【问题讨论】:
-
您需要一个 NSNumberFormatter... 或更好地使用 NSDecimalNumber 因为您看到的是浮点存储的正常不准确性...您没有无限数量的位,因此只能代表有限小数位数
-
我尝试过使用NSNumberFormatter,从字符串中获取数字时出现问题,将此数字转换为浮点数。转换后的浮点数显示小数点后8位
-
浮点数将始终显示 8 位小数...使用 NSDecimalNumber
-
每个程序员都应该知道的关于浮点数的知识:floating-point-gui.de
标签: iphone objective-c floating cgfloat