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