将十进制值作为双精度值赋给var

问题描述 投票:-3回答:1

下面我的快速代码试图将num的值更改为0.5。如果我尝试将值更改为1,则此代码将正常工作。但是现在代码在调试部分打印为零。只想将其转换为0.5

    import UIKit

class ViewController: UIViewController {

    var num = 0

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.

        num = Int(Double(0.5))
        alterImage()
    }
    func alterImage(){
          print("This is the count : ",num)
    }


}
swift int double decimal var
1个回答
0
投票

您为什么将double转换为Int?整数是可以不带小数部分就可以写的数字。因此,如果您尝试将double转换为Int,它将始终给出带舍入的Integer值。

0.1 -> 0
0.2 -> 0
.
0.5 -> 0
.
0.9 -> 0
1.0 -> 0

如果要在Double值为0.5时获得1。您需要将double值四舍五入为上限

var num = Int(Double(0.5).rounded(.up))
print(num) //1

更多信息Integer numbers

© www.soinside.com 2019 - 2024. All rights reserved.