gpt4 book ai didi

cocoa - 将 NSString 转换为 float

转载 作者:行者123 更新时间:2023-12-03 17:31:42 24 4
gpt4 key购买 nike

我从用户输入中获取一个 NSString,如下所示:$10,000.00

我有一个去掉 $ 的方法:

- (NSString*) stripDollarSign : (NSString*) stringToStrip {

//check to see if the number is already formatted correctly
NSRange dollarSignCheck = [stringToStrip rangeOfString:@"$"];
//only strip it if it has the $
if (dollarSignCheck.location != NSNotFound) {

NSString* cleanedString = [stringToStrip substringWithRange:NSMakeRange(1, stringToStrip.length-1)];
return cleanedString;
}

return 0;

}

我的返回是 10,000.00(仍然是 NSString)。

如果我用清理后的结果执行此操作:

float value = [inputString floatValue]

我明白了:

10点

如果我尝试将其转换为 NSDecimal,我会得到 10

[[NSDecimalNumber alloc] initWithString:inputString];

我需要做什么才能将其转换为 10,000.00?

最佳答案

NSNumberFormatter 乍一看似乎是一个很好的前进方向:

  NSString *currencyAmount = @"$10,000.00";
NSLocale *englishLocale = [[NSLocale alloc] initWithLocaleIdentifier: @"en_US"];
NSNumberFormatter *currencyFormatter = [[NSNumberFormatter alloc] init];
currencyFormatter.numberStyle = NSNumberFormatterCurrencyStyle;
currencyFormatter.locale = englishLocale;
NSNumber *number = [currencyFormatter numberFromString: currencyAmount];
NSLog(@"Got amount: %@", number);

请注意,您可能需要首先在格式化程序上手动设置区域设置 - 当我在我的位置测试它时,它根本不能很好地处理井号。

关于cocoa - 将 NSString 转换为 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16525419/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com