我这里的问题是:我有一个包含" 1.7“的NSString (例如),我必须得到浮点数=1.7我已经用[mystring floatValue]
试过了,但结果是1.700000000004576如果我试着用"1.74”,结果是1.7400000000000000000067484我该怎么解决它?谢谢!
发布于 2010-12-01 18:00:28
解决了!我使用了sqlite3_bind_text,即使我的数据库属性是浮点值,而且我使用的是mystring而不是myfloat,它工作得很好!谢谢!
发布于 2010-12-01 17:34:24
您可以正确地将字符串转换为浮点型。问题是浮点数不能精确地表示所有的实数。直接分配:
float x = 1.7;
仍然会有一个精度误差。这就是浮点数的含义。
解决方法取决于您的需求。一些例子:如果你需要更精确的数学计算,你可以使用双精度。如果您试图为用户生成输出,则可以格式化输出,以限制小数点后显示的位数。如果您正在处理货币,您可以将浮点美元金额转换为美分的整数,并使用整数执行所有计算,只在输出中向用户显示一个小数点。
发布于 2010-12-01 17:40:59
浮点数需要能够表示无限多的实数,但浮点数包含有限数量的位,因此浮点数是近似值。
有关详细信息,请参阅this article。
https://stackoverflow.com/questions/4327051
复制