Swift 中的字符串插值

标签 string swift string-interpolation

swift 中的函数接受 Swift 中的任何数字类型(Int、Double、Float、UInt 等)。 该函数将数字转换为字符串

函数签名如下:

func swiftNumbers <T : NumericType> (number : T) -> String {
    //body
}

NumericType 是一种自定义协议(protocol),已添加到 Swift 中的数字类型。

在函数体内,数字应该被转换成字符串:

我使用以下内容

var stringFromNumber = "\(number)"

这不是那么优雅,加上:如果数字的绝对值严格低于 0.0001,它会给出:

"\(0.000099)" //"9.9e-05"

或者如果数字很大:

"\(999999999999999999.9999)" //"1e+18"

有没有办法解决这个字符串插值限制? (不使用 Objective-C)

附言:

NumberFormater 也不起作用

import Foundation

let number : NSNumber = 9_999_999_999_999_997

let formatter = NumberFormatter()
formatter.minimumFractionDigits = 20
formatter.minimumIntegerDigits = 20
formatter.minimumSignificantDigits = 40

formatter.string(from: number) // "9999999999999996.000000000000000000000000"

let stringFromNumber = String(format: "%20.20f", number) // "0.00000000000000000000"

最佳答案

Swift 字符串插值

1) 给一个字符串添加不同的类型

2) 表示字符串是由常量、变量、文字或表达式的混合创建的。

例子:

let length:Float = 3.14
var breadth = 10
var myString = "Area of a rectangle is length*breadth"
myString = "\(myString) i.e. = \(length)*\(breadth)"    

输出:

3.14
10
Area of a rectangle is length*breadth
Area of a rectangle is length*breadth i.e. = 3.14*10

关于Swift 中的字符串插值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25595542/

相关文章:

python - 使用 Python Parse 获取由数字、字母、空格和符号组成的字符串

mysql - C++ 字符串和使用 MySQL

ios - 如何删除 UITableView 部分标题分隔符

ios - 尝试使用 Json 数据创建对象

string - 在 Raku 中不创建字符串上下文的情况下进行插值?

Swift 3 不正确的字符串插值与隐式展开的 Optionals

Python:使用递归来查看一个字符串是否是另一个字符串的旋转

swift - 需要帮助使用 AVAssetExportSession 导出音频

scala - 禁用错误警告 "possible missing interpolator"

javascript - 使用正则表达式匹配具有两个此类子字符串的字符串中的第一个子字符串,默认情况下通常匹配最后一个子字符串