下面是我以前如何将一个浮点数截断到小数点后两位

NSLog(@" %.02f %.02f %.02f", r, g, b);

我查了文档和电子书,但还没找到答案。谢谢!


当前回答

iOS 15+版本推荐:

2.31234.formatted(.number.precision(.fractionLength(1)))

其他回答

斯威夫特4

let string = String(format: "%.2f", locale: Locale.current, arguments: 15.123)

我找到了String。localizedStringWithFormat工作得很好:

例子:

let value: Float = 0.33333
let unit: String = "mph"

yourUILabel.text = String.localizedStringWithFormat("%.2f %@", value, unit)

少打字方式:

func fprint(format: String, _ args: CVarArgType...) {
    print(NSString(format: format, arguments: getVaList(args)))
}

你仍然可以在Swift中使用NSLog,就像在Objective-C中一样,只是没有@符号。

NSLog("%.02f %.02f %.02f", r, g, b)

编辑:在与Swift合作一段时间后,我想添加这个变化

    var r=1.2
    var g=1.3
    var b=1.4
    NSLog("\(r) \(g) \(b)")

输出:

2014-12-07 21:00:42.128 MyApp[1626:60b] 1.2 1.3 1.4
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