ios - 将字符串转换为带有货币的 double 值

标签 ios currency nsnumberformatter

    NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
    [numberFormatter   setNumberStyle: NSNumberFormatterCurrencyStyle];
    double value = [[numberFormatter  numberFromString: ProviderTripRate.text] doubleValue];
    [User setDouble:value forKey:@"Trip_Rate"];
NSLog(@"     %@                  %f     " , ProviderTripRate.text  ,   value  );

如果 ProviderTripRate.text 中的数据为 2.75,则值为 0 错误 如果 ProviderTripRate.text 中的数据为 $2.75,则值为 2.75,正确

如何可靠地将字符串转换为 double 值 请注意,文本字符串可能有也可能没有本地货币符号($ 如上所示) 但它应该总是转换

提前致谢

最佳答案

试试这个:

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle: NSNumberFormatterCurrencyStyle];
NSNumber* number = [numberFormatter  numberFromString:ProviderTripRate.text]
if (!number) {
    [numberFormatter setNumberStyle: NSNumberFormatterDecimalStyle];
    number = [numberFormatter  numberFromString:ProviderTripRate.text];
}
double value = [number doubleValue];

关于ios - 将字符串转换为带有货币的 double 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12920345/

相关文章:

ios - NSNumberFormatter 删除货币前的空格

ios - 将 xcode 更新到版本 7 并将代码迁移到 swift 2。我无法运行链接错误

java - 如何为 Java 7 中的现有国家/地区代码向 java.util.Currency 添加新货币?

swift - NSNumberFormatter.number 货币格式不适用于设备,但适用于模拟器

php - 如何在 PHP 中将数字格式化为美元金额

java - 在 Java 中使用什么数据类型来赚钱?

ios - NSNumberFormatter 故障

iPhone Cocos2D - 将 float 转换为 GLubyte

ios - 如何读取录制的音频(二进制)文件以在 iOS 中上传

ios - 来自 UIPanGestureRecognizer 的触摸坐标