簡體   English   中英

圓形浮動到NSNumber得到了NaN

[英]Round float to NSNumber got NaN

我有一個浮動緯度,我想精確到6位數的小數部分。 當我做

NSNumber * nLatitude = @(round(latitude*1e6)/1e6);
NSLog(@"%f %@", latitude, nLatitude);

有時我得到了正確的結果:

48.8282641210 48.828264

其他時候我得到了NaN:

48.8281686092  nan

有人有想法嗎?


感謝您的所有回復。 確實NSNumberFormatter解決了這個問題,我想找到問題的根源。 舍入數字用於節省磁盤空間和更好的可讀性。 它用於記錄大量位置。

以下是一些更多細節:

我有一個跟蹤,我在模擬器上模擬位置的變化。 位置由FakeLocationManager通過計時器發送。

- (void)locationManager:(FakeLocationManager *)manager didUpdateLocation:(CLLocation *)location{
     // Here the code I round floats
}

有時會發送重復的位置,第一個正確地工作,然后相同的位置變成了NaN。 在我看來,原因可能是計時器。

我很少需要關心浮點值的小數位數。

我懷疑問題是表示問題,在這種情況下, [NSString stringWithFormat:]可用於指定浮點值的小數位數:

_myLabel.text = [NSString stringWithFormat:@"%.6f", [nLatitude doubleValue]];
//                                           ^^^^

使用這個[NSString stringwithFormat:@"%.4f",[nLatitude floatValue]];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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