从NSString iOS转换为double后,我需要相同的值

从NSString iOS转换为double后,我需要相同的值,ios,objective-c,Ios,Objective C,我的NSString值是28.4701278,在转换为双精度后,我想要与28.4701278相同的值 NSString *stringValue = @"28.4701278"; double doubleValue = [stringValue doubleValue]; double finalValue = [@"28.4701278" doubleValue]; NSLog(@"final value ==%f",finalValue); 你得到的输出像 更新 double fi

我的NSString值是28.4701278,在转换为双精度后,我想要与28.4701278相同的值

NSString *stringValue = @"28.4701278";
double doubleValue = [stringValue doubleValue];
double finalValue = [@"28.4701278" doubleValue];
NSLog(@"final value ==%f",finalValue);
你得到的输出像

更新

 double finalValue = [@"28.4701273" doubleValue];
 NSLog(@"final value ==%f",finalValue);
我得到的输出像

编辑

使用
NSDecimalNumber
而不是
double

 NSDecimalNumber *decimalNum= [NSDecimalNumber decimalNumberWithString:@"28.4701273"];
NSLog(@"final  ==%@",decimalNum);
输出为

试试这个:

var string = "28.4701278"
var a = Double(string)

IEEE 754浮点数(用于双精度
中)无法准确表示每个十进制数。见:


如果显著性损失不可接受,请使用
NSDecimalNumber
而不是
double

那么您得到了什么?你尝试了什么?转换成double后,我希望double中的值与28.4701278中的值相同,这只是一个浮点舍入错误。NSString*stringValue=@“28.4701273”;double doubleValue=[stringValue doubleValue];输出将是:28.47012730000001不相同28.4701273在我的情况下输出与上面相同。。。你能在哪里分享你的代码吗?请展示你的输出控制台。我认为你在执行一些数学运算时只需要双数据结构,对于tht 28.470127300000001几乎等于28.4701273。如果你想在任何地方显示它,你可以再次将它转换成字符串,它将是28.4701273。对于从double到string的转换,可以使用NSNumberFormatter*fmt=[[NSNumberFormatter alloc]init];[fmt设置正格式:@“0.”;NSLog(@“%@,[fmt stringFromNumber:[NSNumber numberWithDouble:doubleValue]]);用它来代替输出中缺少的@28.4701278“bro 3”。@SalmanAli--检查编辑答案bro.。这是对象类型而不是双精度数据类型。这是正确的答案。