Objective c 为什么float在这个目标C/Cocoa代码中被舍入
我正在做一个简单的:Objective c 为什么float在这个目标C/Cocoa代码中被舍入,objective-c,floating-point,Objective C,Floating Point,我正在做一个简单的: float x = 151.185436; printf("x=%f",x); 结果是 x=151.185440 这里怎么了?我想保留并打印我的原值151.185436 谢谢 Amarsh的浮动不是很精确。试试加倍。请阅读以下内容:浮动不是很准确。试试加倍。请阅读以下内容:浮点数不准确,请使用双精度浮点数。此外,由于您使用的是目标C而不是直接C,因此,如果您使用目标C函数来实现此目标,可能会更好: myNumber = [NSNumber numberWithDouble
float x = 151.185436;
printf("x=%f",x);
结果是
x=151.185440
这里怎么了?我想保留并打印我的原值151.185436
谢谢
Amarsh的浮动不是很精确。试试加倍。请阅读以下内容:浮动不是很准确。试试加倍。请阅读以下内容:浮点数不准确,请使用双精度浮点数。此外,由于您使用的是目标C而不是直接C,因此,如果您使用目标C函数来实现此目标,可能会更好:
myNumber = [NSNumber numberWithDouble:151.185436];
NSLog(@"myNumber = %@", myNumber);
浮点数不准确,请使用双精度浮点数。此外,由于您使用的是目标C而不是直接C,因此,如果您使用目标C函数来实现此目标,可能会更好:
myNumber = [NSNumber numberWithDouble:151.185436];
NSLog(@"myNumber = %@", myNumber);
一个浮点数只能保存32位4字节的数字信息——它不能只存储你需要的小数位数。151.18544尽可能接近浮点数可以表示的值,而不会耗尽位
为了达到您想要的精度,您需要使用双精度而不是浮点数。浮点数只能保存32位4字节的数字信息-它不能只存储您需要的小数位数。151.18544尽可能接近浮点数可以表示的值,而不会耗尽位
要获得所需的精度,需要使用双精度而不是浮点。浮点和双精度都不准确-这只是程度的问题。浮点和双精度都不准确-这只是程度的问题。