This:
var num = 0
Неявно устанавливает тип переменной на Int
. Вы не можете присвоить ему значение с плавающей запятой, например, 0,5 (например, Float
или Double
).
Когда вы делаете следующее, вы конвертируете значение 0,5 типа Double
в Int
который может представлять только целочисленные значения, такие как 1, 2 и т. д. c ... Это приводит к тому, что значение tu округляется до его целочисленной части, то есть здесь 0:
num = Int(Double(0.5))
/* num is rounded to its integer part, 0 */
Если вы хотите, чтобы ваша переменная num
, чтобы быть значением с плавающей запятой, таким как 0,5 или 4,346 или чем-то еще, вы должны объявить его как Float
или Double
, который может представлять такие числа. Вы можете сделать оба:
var num = 0.0
// or:
var num: Double = 0
Первая версия неявно объявляет переменную как Double
из-за .
. Во второй версии явно указывается тип.
Затем вы можете присвоить ему любое значение с плавающей запятой в вашем viewDidLoad()
без преобразования в Int
(ни Double
, его бесполезно, поскольку 0,5 уже Double
):
class ViewController: UIViewController {
var num = 0.0
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
num = 0.5
// ...
}
// ...
}
Примечание:
- Настоятельно рекомендуем прочитать документацию Apple о типах и инициализации литералами.
- 0,5 не
Decimal
, как вы заявляете в заголовке. Decimal
фактически существует в стандартной библиотеке Swift, но его следует объявить так.