2012-05-29 148 views
4

iOS開發新手,我只是爲一個初學者製作一個小工資型計算器。我正在探索不同的功能,包括在法國和其他非英語國家/地區提供該應用。但是,由於我的應用程序嚴重依賴計算其中有小數點的數字,因此我想知道如果將逗號用作小數點,iOS是否會計算該數字,因爲像法國這樣的國家使用這種表示法:當我使用逗號而不是小數點時,我的iOS應用會計算數字嗎?

澳大利亞/美國/其他國家:

12.5 * 15.8 = 197.5 

法國/其他國家:

12,5 * 15,8 = 197,5 

我非常阿斯金g)如果逗號插入而不是小數點,它是否仍然在本地設備上計算,以及b)如果不是,我應該在我的應用程序中包含哪些代碼,以便計算這個符號? (請注意,我不是要求逗號作爲分隔符,而是相當於小數點的位置。)

預先感謝您!

+0

將其用作字符串:是/取決於實施。在代碼中聲明它:NO – CodaFi

回答

2

實際上,iOS內置了一個方便的類來處理數值的本地化。它被稱爲NSNumberFormatter,它具體有-setDecimalSeparator:方法。

+0

如果文檔看起來和OSX文檔類似,那是因爲Apple還沒有到處分離它們。放心,大多數,如果不是全部,詳細的方法和屬性在iOS中有效。 – CodaFi

1

在使用該圖之前,您應該通過將其轉換爲NSNumber來「歸一化」它。具體方法如下:

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; 
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];  
NSNumber *myNumber = [formatter numberFromString:@"197.5"]; 

這是做了正確的方法,並利用這種方法將考慮到各區域的偏好,逗號分隔符等

在這一點上,爲mynumber可以作爲一個小數,浮點,整數等

float myFloat = [myNumber floatValue]; 
1

時將用逗號小數點,而不是我的iOS應用程序計算這些數字?

是的。只要你使用NSNumberFormatter,它會相當透明地做到這一點。

我想知道,iOS將計算的數字,如果一個逗號作爲 小數點,如法國等國家使用這個符號......

的事情如何,如數字信息日期應格式化由NSLocale類管理。 NSNumberFormatter使用當前語言環境來計算如何解釋和顯示數字,因此當您使用-numberFromString:方法時,格式化程序將使用相應的小數點分隔符。使用-stringFromNumber:生成數字的字符串表示形式時也是如此。

出於您的目的,您可能不必擔心區域設置。只需使用數字格式化程序來解釋輸入並生成輸出,格式化程序將使用適合用戶的區域設置。但是,如果您希望應用提供本地化爲除用戶之外的語言或地區的信息,則可以使用-setLocale:方法將數字格式化程序設置爲使用特定區域設置。

相關問題