【问题标题】:NSNumberFormatter class not rounding up to correct valueNSNumberFormatter 类未四舍五入为正确值
【发布时间】:2019-04-30 08:31:38
【问题描述】:

我正在使用 NSNumberFormatter 类将十进制数四舍五入到 2 位,并在四舍五入时选择较大的数字。

NSString *value = @"1054.705";
NSNumberFormatter *valueDouble = [[NSNumberFormatter alloc] init];
valueDouble.roundingMode = NSNumberFormatterRoundCeiling;
[valueDouble setMaximumFractionDigits:2];
NSNumber *myNumber = [valueDouble numberFromString:value];

Desired Output : 1054.71
Output Coming : 1054.705

所以在这种情况下,0.705 的轮次总是应该是 0.71,无论最后的数字是多少。

【问题讨论】:

  • 你从哪里得到输出?控制台或应用程序(文本字段、标签等)

标签: nsstring rounding nsnumber nsnumberformatter


【解决方案1】:

您可以使用这种方法处理此类情况 - 检查第二个(或其他)小数位是否为零,然后将其除以 ceil

if ((NSInteger)(myNumber.doubleValue * 100) % 10 == 0) {
    myNumber = @(ceil(myNumber.doubleValue * 100) / 100);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多