【发布时间】:2020-11-02 23:43:03
【问题描述】:
我想在 Objective-C 中将双精度位四舍五入到小数点后一位。
在 Swift 中,我可以通过扩展来做到这一点:
public extension Double {
/// Rounds the double to decimal places value
func rounded(toPlaces places:Int) -> Double {
let divisor = pow(10.0, Double(places))
return (self * divisor).rounded() / divisor
}
}
但是,显然你不能从 Objective-C 调用原语的扩展,所以我不能使用扩展。
我很乐意直接对双精度或作为字符串进行舍入,但是,以下都不起作用:
double mydub = 122.12022222223322;
NSString *axtstr = [NSString stringWithFormat:@"%2f", mydub]; //gives 122.120222
double rounded = (round(mydub*10)) / 10.0; //gives 122.100000
如何转换 122.12022222223322;进入 122.1?
【问题讨论】:
标签: objective-c swift double rounding