当前位置: 首页 > 面试题库 >

Swift中的精确字符串格式说明符

令狐晟
2023-03-14
问题内容

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

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

我检查了文档和电子书,但无法弄清楚。谢谢!


问题答案:

根据David的回答,到目前为止,我最好的解决方案是

import Foundation

extension Int {
    func format(f: String) -> String {
        return String(format: "%\(f)d", self)
    }
}

extension Double {
    func format(f: String) -> String {
        return String(format: "%\(f)f", self)
    }
}

let someInt = 4, someIntFormat = "03"
println("The integer number \(someInt) formatted with \"\(someIntFormat)\" looks like \(someInt.format(someIntFormat))")
// The integer number 4 formatted with "03" looks like 004

let someDouble = 3.14159265359, someDoubleFormat = ".3"
println("The floating point number \(someDouble) formatted with \"\(someDoubleFormat)\" looks like \(someDouble.format(someDoubleFormat))")
// The floating point number 3.14159265359 formatted with ".3" looks like 3.142

我认为这是最类似于Swift的解决方案,将格式化操作直接与数据类型相关联。可能是某处有一个内置的格式化操作库,或者它可能很快就会发布。请记住,该语言仍处于测试阶段。



 类似资料:
  • 我有一个变量,它包含以下值: 我目前正在使用以下代码将其格式化为字符串:.使用此代码,我得到以下值: 我需要这个更准确。我想要得到的精确值在以下精度范围内: 我在以下链接上做了一些研究:http://www.w3.org/TR/NOTE-datetime 以下是我的发现: 此配置文件没有指定可以使用多少位数来表示每秒的小数部分。允许分数秒的采用标准必须规定最小位数(大于或等于一的数字)和最大位数(

  • 说我想打印: 这是正确的。这: 或者这个: ? 事情是在其他地方,所以我遇到了这样的讨论: -即使ch变为无符号字符,代码的行为也不是由C标准定义的。这是因为无符号字符被提升为int(在普通的C实现中),所以int被传递给printf的说明符%u。但是,%u需要一个无符号int,所以类型不匹配,并且C标准没有定义该行为 -你的评论不正确。C11标准规定转换说明符必须与函数参数本身的类型相同,而不是

  • 问题内容: 在Swift中,我可以使用格式说明符来格式化字符串: 但是官方文档没有提供有关受支持的格式说明符或如何构建类似于以下内容的模板的任何信息或链接:https : //developer.apple.com/documentation/swift/string/3126742-init 它只说: 返回一个String对象,该对象通过使用给定的格式字符串作为模板进行初始化,剩余的参数值将替换

  • 我似乎找不到一种方法来设置双重格式,将精度限制在小数点后的几个位置,当在标签中显示时。也许我遗漏了一些重要的东西,但我在官方文件中找不到任何东西。 提前感谢您的帮助!

  • 我正在尝试创建一个Lucene4.10索引。我只想在索引中保存我放入文档的确切字符串,witout标记化。 我在用StandardAnalyzer。 我试图搜索术语“燃料箱容量”@en(包括引号),所以我试图省略它们,并在术语周围添加了另外几个引号,以便让lucene理解我正在搜索整个文本。 如果我打印查询,我会得到:3:“燃料箱容量en”,但我不想拆分@符号上的文本。 我认为我的第一个问题是St

  • 本文向大家介绍Fortran 分配格式说明符,包括了Fortran 分配格式说明符的使用技巧和注意事项,需要的朋友参考一下 示例 在Fortran 95之前,可以将分配的格式用于输入或输出。考虑 该assign语句将语句标签分配给整数变量。以后将此整数变量用作print语句中的格式说明符。 在Fortran 95中删除了这种格式说明符分配。相反,更现代的代码可以使用其他形式的执行流控制 或字符变量