NSNumber* n = @(7654321098.345);
float maxTimestampInFloat = [n floatValue];
long groundedMaxTimestamp = lroundf(maxTimestampInFloat);
NSNumber* result = @(groundedMaxTimestamp);
结果值变为7654321152,我预计它应该是7654321098。
我检查了浮点数的最大值是:
浮动最大值:340282346638528859811704183484516925440.000000
为什么?
答案 0 :(得分:0)
代码中的变化很小,
NSNumber* n = @(7654321098.345);
double maxTimestampInFloat = [n doubleValue];
long groundedMaxTimestamp = round(maxTimestampInFloat);
NSNumber* result = @(groundedMaxTimestamp);
使用double而不是float。我已经从我身边检查了它并且工作正常。
希望这会对你有所帮助。