微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Swift中的字符串插值

@L_404_0@中的函数采用 Swift中的任何数字类型(Int,Double,Float,UInt等).
函数将数字转换为字符串

功能签名如下:

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

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

函数体内,该数字应转换为字符串:

我使用以下内容

var stringFromNumber = "\(number)"

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

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

或者如果数字是一个大数字:

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

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

P.S:

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐