Я работаю над приложением, которое должно выполнить некоторое отображение и вычисление двойных типов в Swift. Созданная мной структура принимает Double как параметр, и поскольку она также отображает ее, я хотел бы сохранить конечный ноль в конце значения. Тем не менее, я не могу заставить уходящий ноль быть усеченным.Сохранение конечных нулей из .doubleValue() в Swift
Вот что я пытался в Playground:
let numberString = "-3.60"
// "3.60"
let positiveString = numberString.stringByReplacingOccurrencesOfString("-", withString: "", options: nil, range: nil)
// 3.6
let positiveDouble = (positiveString as NSString).doubleValue
// "3.60"
let positiveDoubleString = NSString(format: "%0.02f", positiveDouble)
// 3.6
let positiveDoubleWithZeros = positiveDoubleString.doubleValue
Я получаю 3.6
как результат, независимо от того, что я стараюсь. Какая очевидная часть конверсии, которую я пропускаю?
'positiveDoubleWithZeros' - число с плавающей запятой и 3.6 == 3.60. Если вы хотите отобразить номер с двумя дробными цифрами, используйте * string * 'positiveDoubleString'. –
@MartinR Итак, я не должен волноваться о концевом ноль в двойном значении, а просто использовать строковое значение для отображения после форматирования его с конечным нолем? Это имеет смысл. –
Да. Двойное значение не имеет «конечного нуля». То, что вы видите как 3.6 на игровой площадке, - это снова преобразование числа с плавающей точкой в строку. –