2016-09-22 57 views
1

我正在构建一个计算器应用程序,我试图让text.label只显示小数值,如果它们不是空的,例如; 5 + 5 = 10,现在它显示10.0,因为我正在使用浮动。在将结果打印到屏幕之前,我是否每次都创建一个函数,这对我来说似乎没有必要?删除空的十进制值Swift 3

+4

只使用NumberFormatter minimumFractionDigits = 0 –

+0

这将无法正常工作,因为我仍然需要它显示十进制值,例如5.2 + 5 = 10.2 – Brewski

回答

1

扩展

夫特3

extension Float { 
    var cleanValue: String { 
     return self.truncatingRemainder(dividingBy: 1) == 0 ? String(format: "%.0f", self) : String(self) 
    } 
} 

夫特2

extension Float { 
    var cleanValue: String { 
     return self % 1 == 0 ? String(format: "%.0f", self) : String(self) 
    } 
} 

用法

var sampleValue: Float = 3.234 
print(sampleValue.cleanValue) 
//Output = 3.234 
sampleValue = 3 
print(sampleValue.cleanValue) 
//Output = 3 
+0

这不能在Swift 3中编译。 –

+0

I已编辑我的答案 –

+0

谢谢,看起来是正确的,它在Playground中工作,但在项目中我得到的错误:实例成员'cleanValue'不能用于类型'浮动'。顺便说一句,这是代码:result =“\(Float.cleanValue(leftValStr)!* Float.cleanValue(rightValStr)!)” – Brewski