[英]Using NSNumberFormatter to pad spaces between a currency symbol and the value
[英]NSNumberFormatter, how to remove blank spaces in currency symbol
我有一些值,我需要格式化為貨幣字符串。 似乎在使用NSNumberFormatter格式化金額時,生成的貨幣字符串將包含一個或多個空格。
例如,使用以下代碼將@"1000"
格式化為歐洲貨幣格式將導致返回@"1,000,00 €"
。 請注意貨幣符號前的空白區域。
NSNumberFormatter *tempNumberFormatter = [[NSNumberFormatter alloc] init];
[tempNumberFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
[tempNumberFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
[tempNumberFormatter setLocale:[NSLocale currentLocale]];
[tempNumberFormatter setGeneratesDecimalNumbers:YES];
[tempNumberFormatter setMaximumFractionDigits:2];
[tempNumberFormatter setMinimumFractionDigits:2];
[tempNumberFormatter setAlwaysShowsDecimalSeparator:YES];
NSString *value = @"1000";
NSNumber *number = [NSNumber numberWithFloat:[value doubleValue]];
NSString *result = [tempNumberFormatter stringFromNumber:number];
[tempNumberFormatter release];
// result = 1.000,00 €
我首先考慮通過過濾字符串中的空格來輕松解決這個問題,但由於某些原因這不起作用,下面的代碼片段沒有按照我的預期進行:
[result replaceOccurrencesOfString:@" " withString:@"" options:NSCaseInsensitiveSearch range:NSMakeRange(0, [result length])];
有沒有辦法使用NSNumberFormatter返回沒有空格空格的格式化字符串? ( 1.000,00€
)
這是一個老問題,但我遇到了同樣的問題。 NSNumberFormatter使用的空格字符不是您在replace方法中提供的標准空間。
這是一種特殊的性格。 您可以使用NSLog檢索它,然后從調試窗口復制該神秘空間並將其粘貼到您的replace方法中
formattedPrice = [formattedPrice stringByReplacingOccurrencesOfString:@" " withString:@""];
復制並粘貼我的行也應該這樣做(不知道瀏覽器用它做了什么......)
您確定您的區域設置的空間不正確嗎? 你的示例代碼給了我“€1,000.00”,這是我的語言環境(美國)的正確格式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.