繁体   English   中英

目标C将数字舍入到数字

[英]Objective C round number to a number

我正在尝试将一个数字舍入到另一个数字(在我的情况下是x * 90),经过一些搜索后我得到了它,感谢这段代码:

round(number / 90) * 90;

问题是,这是最好的方法吗? 它只是感觉像一些试用/错误代码..

这是正确的做法。 如果你正在舍入双打,你应该使用NSNumberFormatter

float roundedValue = round(number / 90) * 90;
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setMaximumFractionDigits:1];
[formatter setRoundingMode: NSNumberFormatterRoundDown];

NSString *numberString = [formatter stringFromNumber:[NSNumber numberWithFloat:roundedValue]];

假设数字是整数

((number + (90/2))/90) * 90;

如果你想使用round()和朋友,你必须转换为浮点数。 以上都用整数来做。 在任何情况下,有很多方法可以做到这一点(在你的例子中,返回将是一个浮点数,但是一个整数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM