2013-03-07 32 views
0

我有一些來自服務器的數字,如何知道有多少小數位數? 我的意思是如何知道2.43在昏迷後有2個數字,3.145-3個數字,2.0003-4個數字。 在此先感謝..iOS:找出小數位數

+3

似乎並不像最難以解決的問題。你有什麼嘗試? – trojanfoe 2013-03-07 16:42:25

+0

你是指這段時間之後? – 2013-03-07 17:05:14

回答

4

假設您使用的是數字,請將其更改爲字符串。刪除小數點並獲取最後一個對象和長度。

例子:

NSNumber *number = [[NSNumber alloc] initWithFloat:3.902]; 
[[[[number stringValue]componentsSeparatedByString: @"."] lastObject] length]; 
+0

不適用於號碼= @(12) – Brett 2014-07-23 06:03:53

+0

如果號碼沒有任何小數位數字,這將不起作用。如果返回的數組有兩個項目並檢查第二項(NSString)的長度以獲得正確的小數位數,則需要添加一個檢查。如果沒有第二項,這意味着沒有小數位。 – 2015-11-05 11:16:38

0
  1. 轉換爲字符串。
  2. 找到小數點範圍。
  3. 從小數點位置減去字符串長度並添加一個。
1

我這樣做:

NSNumber *number = [[NSNumber alloc] initWithFloat:3.902]; 
NSUInteger i = [[number stringValue] rangeOfString:@"."].location; 
long numberOfDigits = [[number stringValue] length]-(i+1); 
NSLog(@"%ld", numberOfDigits); 
0

你的意思,你是從服務器以流檢索數據?

如果您將數據作爲流獲取,則應該在字符串的長度前加前綴,這就是您將知道多少地點的期望值。

所以在服務器上,先轉換爲字符串,然後確定長度,或使用其他方法的建議,然後在前面加上字符串的長度,然後先發送該號碼。