下面是我以前如何将一个浮点数截断到小数点后两位
NSLog(@" %.02f %.02f %.02f", r, g, b);
我查了文档和电子书,但还没找到答案。谢谢!
下面是我以前如何将一个浮点数截断到小数点后两位
NSLog(@" %.02f %.02f %.02f", r, g, b);
我查了文档和电子书,但还没找到答案。谢谢!
当前回答
import Foundation
extension CGFloat {
var string1: String {
return String(format: "%.1f", self)
}
var string2: String {
return String(format: "%.2f", self)
}
}
使用
let offset = CGPoint(1.23, 4.56)
print("offset: \(offset.x.string1) x \(offset.y.string1)")
// offset: 1.2 x 4.6
其他回答
也用于四舍五入:
extension Float
{
func format(f: String) -> String
{
return NSString(format: "%\(f)f", self)
}
mutating func roundTo(f: String)
{
self = NSString(format: "%\(f)f", self).floatValue
}
}
extension Double
{
func format(f: String) -> String
{
return NSString(format: "%\(f)f", self)
}
mutating func roundTo(f: String)
{
self = NSString(format: "%\(f)f", self).doubleValue
}
}
x = 0.90695652173913
x.roundTo(".2")
println(x) //0.91
iOS 15+版本推荐:
2.31234.formatted(.number.precision(.fractionLength(1)))
到目前为止,得到最多投票的答案依赖于NSString方法,并且需要你导入Foundation。
完成这些之后,你仍然可以访问NSLog。
所以我认为这个问题的答案,如果你在问如何继续在Swift中使用NSLog,很简单:
进口的基础
这是一种非常快速和简单的方法,不需要复杂的解决方案。
let duration = String(format: "%.01f", 3.32323242)
// result = 3.3
以下代码:
import Foundation // required for String(format: _, _)
print(String(format: "a float number: %.2f", 1.0321))
将输出:
a float number: 1.03