[英]How to convert nsstring to float upto 2 decimal places in objective C?
[英]Convert NSString to float - Objective C
我想將一個字符串轉換為float,這是我寫的代碼:
NSString *latString = [[response valueForKey:@"coords"] valueForKey:@"lat"];
NSLog(@"Latitude String: %@", latString);
self.coordLat = [latString floatValue];
NSLog(@"Latitude: %lu", (unsigned long) self.coordLat);
但是我得到的是:
2016-03-14 17:36:00.471 marsad[9968:186761] Latitude String: 36.860532
2016-03-14 17:36:00.587 marsad[9852:152630] Latitude: 36
unsigned long
型就像integers
一樣,因此自然會舍去小數點。
試試NSLog(@"Latitude: %f", self.coordLat);
代替。
NSLog(@"Latitude: %lu", (unsigned long) self.coordLat);
這會將值轉換為long。 您應該使用類似:
NSLog(@"Latitude: %f", self.coordLat);
您可以使用NSString
floatValue
只讀屬性,如Apple文檔所述 :
此屬性在字符串的開頭不包含空格。 上溢時此屬性為HUGE_VAL或–HUGE_VAL,下溢時為0.0。 如果字符串不是以浮點數的有效文本表示開頭,則此屬性為0.0。
如果字符串格式正確,則可以使用以下命令將其強制轉換為float:
NSString *val = @"3.45";
float fCost = [val floatValue];
NSLog(@"Latitude: %g", self.coordLat);
64位浮點數(雙精度),如果指數小於–4或大於或等於精度,則以%e樣式打印,否則以%f樣式打印。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.