簡體   English   中英

當使用逗號而不是小數點時,我的iOS應用程序會計算數字嗎?

[英]Will my iOS app calculate figures when a comma is used instead of a decimal point?

iOS開發新手,我只是為啟動器制作一個小工資型計算器。 我正在探索不同的功能,包括在法國和其他非英語原生國家提供應用程序。

但是,由於我的應用程序非常依賴於計算其中包含小數點的數字,我想知道如果使用逗號作為小數點iOS是否會計算數字,因為像法國這樣的國家使用這種表示法:

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

12.5 * 15.8 = 197.5

法國/其他國家:

12,5 * 15,8 = 197,5

我幾乎要問a)如果插入逗號而不是小數點,它是否仍會在本地設備上計算,b)如果沒有,我應該在我的應用程序中包含哪些代碼,以便計算這種表示法? (請注意,我不是要求逗號作為分隔符,而是等同於小數點。)

先感謝您!

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

在使用該圖之前,您應該通過將其轉換為NSNumber來“標准化”它。 這是如何做:

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

這是正確的方法,使用此方法將考慮區域首選項,逗號分隔符等。

此時,myNumber可以用作十進制,浮點數,整數等。

float myFloat = [myNumber floatValue];

當使用逗號而不是小數點時,我的iOS應用程序會計算數字嗎?

是。 只要你使用NSNumberFormatter它就會相當透明。

我想知道如果使用逗號作為小數點iOS是否會計算數字,因為像法國這樣的國家使用這種表示法...

有關如何格式化數字和日期等內容的信息由NSLocale類管理。 NSNumberFormatter使用當前語言環境來確定如何解釋和顯示數字,因此當使用-numberFromString:方法時,格式化程序將使用適當的小數分隔符。 使用-stringFromNumber:生成數字的字符串表示形式時也是-stringFromNumber:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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