objective-c - NSNumberFormatter 干扰 NSString intValue

标签 objective-c macos cocoa nsstring nsnumberformatter

我有一个NSForm,用于向用户显示内容。该表单可以通过应用程序连接到 Web 托管的 XML 文件进行更新,也可以由用户手动编辑。通过 Interface Builder,我将每个表单值设置为通过 NSNumberFormatter 进行格式化,以使数据的显示更易于阅读。 NSNumberFormatter 仅插入千位分隔符。

由于用户可以手动编辑数据,因此我提取 NSForm 字段的 stringValue 。我注意到,当我执行此函数时,它还会获取已注入(inject)字符串中的逗号。我需要对这些值进行一些数学运算,并且在尝试调用 NSString intValue 或 NSString floatValue 时会导致问题。大家有什么想法吗?

我在想,在将字符串转换为 floatint 值之前,我可能必须“预解析”字符串以删除逗号。

最佳答案

NSNumberFormatter 也可以向后工作:

NSNumber *n = [formatter numberFromString:@"123,456.78"];
float x = [n floatValue];

关于objective-c - NSNumberFormatter 干扰 NSString intValue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16702086/

相关文章:

macos - 如何每秒运行一次代码?

swift - MacO 上状态的保存和恢复

cocoa - 如何在mac根目录的下一级搜索文件?

ios - UIImage 返回 nil

Swift MacOS SpriteKit rightMouseDragged 不起作用

objective-c - iPad 上的多个呈现 View Controller 和旋转

ruby-on-rails - 无效的 gem : package is corrupt -- while installing rails in osx yosemite 10. 10.1

cocoa - 来自字节数组的 CGImage

ios - 文本字段仅返回 1 个字母或 NULL 的奇怪问题

iphone - 处理大量 MKMapView 注释