2015-10-28 3 views
0

Это мой код, и я не могу понять, как я могу сделать свою печать в формате int вместо double. Если я изменю его на int, мои операторы if не будут работать, поэтому его в настоящее время double.Swift print double as int

Есть ли способ напечатать 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" 
} 

ответ

1

Примечание: Я не на компьютере, способный работать Xcode в это время, так что я иду из моей памяти.

Если вы хотите напечатать двойной как 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 = " \(Int(floatValue)) " // Notice the Int(floatValue). This casts the floatValue to an Integer. 
} 
4

Да, вы можете использовать String, метод формата в формат ваш двойник, как вы хотите:

let myDouble = 23.12 

box3.text = String(format: "%.0f", myDouble) // "23" 
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 не всегда используется, поэтому, возможно, вам только нужно сделать математику с Интс:

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

Спасибо @Paul Cantrell также, это был (int), о котором я должен был знать, это фиксировало проблему. Я чувствую, что вы дали мне отличные советы, но я так мало знаю о Swift и программировании, что я (если честно) не знаю, что вы имеете в виду ... когда вы говорите NaN или FP .. Я как бы потерян. Но спасибо за помощь, оцените! – Frederic

+0

NaN означает «не число». Оно не зависит от Swift; он доступен везде, где вы с арифметикой с плавающей запятой, вплоть до C. https://en.wikipedia.org/wiki/NaN –

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