objective-c - Objective-C 中的圆形双精度
问题描述
我想在 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?
解决方案
你需要在和之间加上一个%
小数2f
[NSString stringWithFormat:@"%.2f", mydub];
推荐阅读
- c# - 为什么 Visual Studio 仅在调试模式下运行我的解决方案?
- correlation - rmcorr 返回 ap 值 >1
- python - 为什么在 Django Rest Framework 中出现“AssertionError:可能无法同时设置 `read_only` 和 `required`”?
- reactjs - 如何键入 Reactstrap 的 Spinner 的 Wrapper 反应函数?
- r - 如何根据条件合并两个数据框?
- ios - 从 Siri 启动应用程序会导致“NSUserActivity 附加了交互但未处理”
- flutter - 在 Flutter 中展开时如何更新 ExpansionTile 小部件的子级?
- python - PyQt5 Fusion Style Button Icons 坏了
- python - 在为本地模块的源 repo url 执行 pip freeze 时,要求 pip 使用 ssh 而不是 https
- android - 如何将我的真实设备连接到 android studio?