Я пытаюсь отформатировать целое число, возвращаемое для UInt64.max
, чтобы добавить запятые в число. В случае, если это имеет значение, я сейчас пишу это на «Игровой площадке», и я использую XCode 6.3.2.Как форматировать UInt64.max для добавления запятых
Вот соответствующий код:
//: Playground - noun: a place where people can play
import UIKit
// MARK: - Integer Bounds
var formatter = NSNumberFormatter()
formatter.numberStyle = .DecimalStyle
println(formatter.stringFromNumber(100000))
println(formatter.stringFromNumber(100000000))
println(formatter.stringFromNumber(NSNumber(char: Int8.min)))
println(Int8.min)
println(Int8.max)
println(UInt8.min)
println(UInt8.max)
println(Int16.min)
println(formatter.stringFromNumber(NSNumber(short: Int16.min)))
println(Int16.max)
println(formatter.stringFromNumber(NSNumber(short: Int16.max)))
println(UInt16.min)
println(UInt16.max)
println(formatter.stringFromNumber(NSNumber(unsignedShort: UInt16.max)))
println(Int32.min)
println(formatter.stringFromNumber(NSNumber(int: Int32.min)))
println(Int32.max)
println(formatter.stringFromNumber(NSNumber(int: Int32.max)))
println(UInt32.min)
println(UInt32.max)
println(formatter.stringFromNumber(NSNumber(unsignedInt: UInt32.max)))
println(Int64.min)
println(formatter.stringFromNumber(NSNumber(longLong: Int64.min)))
println(Int64.max)
println(formatter.stringFromNumber(NSNumber(longLong: Int64.max)))
println(UInt64.min) // 0
println(UInt64.max) // 18446744073709551615
println(formatter.stringFromNumber(NSNumber(unsignedLongLong: UInt64.max))) // Optional("-1")
Все они возвращают правильно отформатированный номер, кроме последнего (UInt64.max).
Как показано, последняя строка (где я пытаюсь использовать форматирование для добавления запятых) возвращает Optional("-1")
.
Как я могу напечатать UInt64.max
с запятыми?
выглядит как ошибка мне. Кажется, что каждое число> Int64.max отформатировано как отрицательное число. –
Мой вопрос здесь может быть дубликатом этого: http://stackoverflow.com/questions/24218918/why-is-uint64-max-equal-1-in-swift –