swift 中的函数采用 Swift 中的任何数字类型(Int、Double、Float、UInt 等)。
该函数将数字转换为字符串
函数签名如下:
func swiftNumbers <T : NumericType> (number : T) -> String {
//body
}
数字类型是一个自定义协议,已添加到 Swift 中的数字类型。
在函数体内,数字应转换为字符串:
我使用以下
var stringFromNumber = "\(number)"
这不是那么优雅,另外:如果数字的绝对值严格低于 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) 表示字符串是由常量、变量、文字或表达式的混合创建的。
Example:
let length:Float = 3.14
var breadth = 10
var myString = "Area of a rectangle is length*breadth"
myString = "\(myString) i.e. = \(length)*\(breadth)"
Output:
3.14
10
Area of a rectangle is length*breadth
Area of a rectangle is length*breadth i.e. = 3.14*10
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)