0

我需要能够计算两个日期之间的时间差,然后以一位精度十进制格式存储该值。所以如果时差是 6 分钟我需要返回 0.1,如果是 3 分钟我仍然需要返回 0.1,但如果是 7 分钟或 12 分钟,我需要返回 0.2。时间差的减法工作正常:

NSTimeInterval interval = [currentFlight.landtime timeIntervalSinceDate:currentFlight.takeofftime];

这会按预期返回,因此如果差值为 6(分钟),我得到的值为 0.100000。

我还需要在UILabel. 当我使用这个数字格式化程序时,0.100000 显示为 .2 而不是 .1:

NSNumberFormatter *ftDecimalFormatter = [[NSNumberFormatter alloc] init];
[ftDecimalFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
[ftDecimalFormatter setMaximumFractionDigits:1];
[ftDecimalFormatter setMinimumFractionDigits:1];
[ftDecimalFormatter setRoundingMode:NSNumberFormatterRoundUp];

我已经尝试了所有不同的舍入方法,但似乎没有一个有效。有什么建议么?

4

1 回答 1

0

将数字乘以 10,加上 0.9999999999999,截断小数部分(即下限),然后除以 10。[您可以通过其他方式获得相同的结果,这只是一种方式。] 然后您可以使用格式字符串打印您的数字指定一位十进制数字,不是吗?

于 2012-07-27T20:43:55.177 回答