RoundOffTest()似乎向上和向下四舍五入

|| void RoundOffTest(双精度数) {     //您将什么值传递给RoundOffTest()以获得此输出:     //数字前= 1.785000取整= 178.000000(向下取整)     // AFTER NUMBER = 1.785000 round = 179.000000(向上取整)     //     //似乎向下舍入。     //但是第二行似乎将其四舍五入。     //这不是不可能吗?没有可以通过的号码     //此函数,并查看该输出?还是在那里?     NSLog(@ \“之前数字=%f取整=%f(向下取整)\”,数字,取整(数字* 100));     双数= 1.785000;     NSLog(@ \“ AFTER NUMBER =%f round =%f(round up)\”,NUMBER,round(NUMBER * 100)); }     
已邀请:
number
设置为
1.7849995
,您将获得看到的结果。请注意,
%f
打印的小数点后六位,并且输出舍入到该位数,因此so3ѭ将不起作用。 格式化不取整 要回答您的评论问题:使用
NSNumberFormatter
。我认为所有的
printf
样式格式化程序都可以使用。
NSNumberFormatter
提供7种不同的舍入模式。这是测试功能的修改版本:
void RoundOffTest(double number)
{
    NSNumberFormatter *formatter = [NSNumberFormatter new];
    [formatter setFormat:@\"0.000000\"];  // see docs for format strings
    [formatter setRoundingMode:NSNumberFormatterRoundFloor]; // i.e. truncate
    NSString *formatted = [formatter stringFromNumber:[NSNumber numberWithDouble:number]];
    NSLog(@\"%@\\n\", formatted);
    [formatter release];
}
    

要回复问题请先登录注册