Ios 双精度丢失

Ios 双精度丢失,ios,objective-c,sqlite,double,Ios,Objective C,Sqlite,Double,我正在将一些值存储到sqlite数据库中。因此,数据作为字符串从textfield收集,然后转换为double并持久化 这是我试过的 NSDecimalNumber答案 value.answer=[NSDecimalNumber decimalnumberwhithstring:answerValue] 如果使用6532.002作为数据,它将失去精度 你知道怎么解决这个问题吗。我知道类似的问题已经发布了很多次,但是在尝试了一些推荐的解决方案之后,我还没有能够解决这个问题 谢谢由于浮点数的工作方式

我正在将一些值存储到sqlite数据库中。因此,数据作为字符串从textfield收集,然后转换为double并持久化

这是我试过的

NSDecimalNumber答案
value.answer=[NSDecimalNumber decimalnumberwhithstring:answerValue]

如果使用6532.002作为数据,它将失去精度

你知道怎么解决这个问题吗。我知道类似的问题已经发布了很多次,但是在尝试了一些推荐的解决方案之后,我还没有能够解决这个问题


谢谢

由于浮点数的工作方式,您的数字不能精确表示为双精度浮点数。如果需要这种精度,您需要找到另一种方法来表示它。有些选项是使用任意精度库(例如),或使用具有所需位数的,以获得所需精度的。如果只显示数字,则应将其保留为字符串

由于浮点数的工作方式,您的数字不能精确表示为双精度浮点数。如果需要这种精度,您需要找到另一种方法来表示它。有些选项是使用任意精度库(例如),或使用具有所需位数的,以获得所需精度的。如果只显示数字,则应将其保留为字符串

使用

float value=[textField.text floatValue];
使用


“它失去了它的精度”-你能详细说明有损转换发生在哪里吗?数字被转换成双精度形式[value.answer doubleValue],在那里它失去了精度。新值为6532.0019999995为什么不将其存储为字符串?那么就没有混乱的转换问题了……我以后需要对这个值做一些数学计算。“它失去了精度”-你能详细说明一下有损转换在哪里发生吗?数字被转换成双精度形式[value.answer doubleValue],在那里它失去了精度。新值为6532.0019999995为什么不将其存储为字符串?没有混乱的转换问题…我以后需要对这个值做一些计算。