我想將字符串轉換爲數字使用NSNumberFormatter
。在我的應用程序中,輸入小數點後兩位數以上的字符串無效,即@"3.1"
和@"3.14"
是有效輸入,但@"3.141"
不是。驗證字符串使用NSNumberFormatter
NSNumberFormatter
的文檔說,setMaximumFractionDigits:
「[s]是接收器允許輸入的小數點分隔符後的最大位數」。
所以,我很驚訝,當這個代碼:
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
numberFormatter.maximumFractionDigits = 2;
NSNumber *number = [numberFormatter numberFromString:@"3.141"];
NSLog(@"%@", number);
接受@"3.141"
,給了我下面的輸出:
3.141
我期待的@"3.141"
的轉換失敗(並返回nil
)因爲它具有超過小數點分隔符後允許的最大位數。
很明顯,我不理解這裏的基本內容。難道NSNumberFormatter
不使用maximumFractionDigits
作爲驗證字符串輸入的一部分嗎?
這沒有格式化「拒絕」的數量。 – millimoose