簡體   English   中英

將NSString轉換為float-目標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.

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