簡體   English   中英

NSNumberFormatter,如何刪除貨幣符號中的空格

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM