Swift打印双作为int

时间:2015-10-28 18:12:55

标签: swift

这是我的代码,我无法弄清楚如何以int格式而非double格式进行打印。如果我将其更改为int,则我的if语句将无效,这就是为什么它当前为double

我有办法将double打印为int吗?

import UIKit

var strValue = box1.text
var floatValue = Double((strValue as NSString).integerValue)
var strValue2 = box2.text
var floatValue2 = Double((strValue2 as NSString).integerValue)
var text = "1"
var procent = floatValue2 / floatValue * 100

if floatValue < 99 {
    box3.text = " \(floatValue) " // How can "floatvalue" be printed as "xx" and not "xx.xx"
}

4 个答案:

答案 0 :(得分:4)

是的,您可以使用String格式化方法来格式化您的双重格式:

let myDouble = 23.12

box3.text = String(format: "%.0f", myDouble)   // "23"

答案 1 :(得分:1)

注意:我现在不在能够运行Xcode的计算机上,所以我要离开我的记忆。

如果要将double打印为int,但不将所有变量更改为Integers,则可以执行以下操作:

import UIKit

var strValue = box1.text
var floatValue = Double((strValue as NSString).integerValue)
var strValue2 = box2.text
var floatValue2 = Double((strValue2 as NSString).integerValue)
var text = "1"
var procent = floatValue2 / floatValue * 100

if floatValue < 99
{
box3.text = " \(Int(floatValue)) " // Notice the Int(floatValue). This casts the floatValue to an Integer.
}

答案 2 :(得分:1)

var strValue = "13.45"
var floatValue = Double(strValue) ?? Double.NaN
var strValue2 = "23.45"
var floatValue2 = Double(strValue2) ?? Double.NaN
var text = "1"
var procent = floatValue2 / floatValue * 100

if floatValue < 99
{
print(" \(Int(round(floatValue))) ")
}

这假设当框中的文本不是有效数字时,NaN是合理的默认值。您也可以选择更明确地处理丢失/无效文本,如下例所示。

我还假设您想要将数学运算为FP,然后将结果舍入为int。但是procent变量从未使用过,所以也许你只需要用int进行数学运算:

var strValue = "13"
var strValue2 = "23"
if let floatValue = Int(strValue), let floatValue2 = Int(strValue2)
{
    if floatValue < 99
    {
        print(" \(Int(floatValue)) ")
    }
}

答案 3 :(得分:0)

测试设置:

let box1 = UILabel()
box1.text = "23.23"

转换代码:

let strValue = box1.text!
let strFormatted = String(format: "%.0f", Double(strValue)!)   // "23"

print("strFormatted: \(strFormatted)") // strFormatted: 23