2010-02-24 35 views
3

我的应用程序需要将经XML解析的纬度和经度值存储到核心数据中。目前,我有一个核心数据模型,其中这些属性设置为double。模型对象的头文件定义为NSNumber如何将NSMutableString转换为双倍存储在Core Data中?

如何将存储在我的CurrentNodeText变量中的字符串转换为所需的类型以存储在核心数据中?另外,这是将坐标数据存储在核心数据中的适当方式吗?

回答

5

NSString有一个doubleValue方法,它将检查字符串以查看它是否看起来像double,并返回该值(如果是),则返回该值(否则返回0.0)。

至于这是否是存储坐标数据的合适方法:取决于。二进制浮点数不能精确地表示每个十进制数可以表示的数字。在这些情况下,他们会存储一些令人难以忍受的东西,但这可能会导致精度要求过高的计算 - 例如,比较浮点数是否相等,以及测试一个浮点数是否小于另一个浮点数不会产生精确结果。如果确切数字很重要,您可能更愿意将该数字保留在NSDecimalNumber,NSDecimal或NSString中。

+0

提及小数+1。浮点数据类型按原样被滥用。 – 2010-03-12 21:37:37

相关问题