这是我的代码,我无法弄清楚如何以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"
}
答案 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