From f93ddf14467a76c83c20dc1c11362e21e34ab4ed Mon Sep 17 00:00:00 2001 From: Grigory Ulanov Date: Mon, 12 Sep 2016 17:01:09 +0300 Subject: [PATCH] new roundValue --- .../Extensions/Double/Double+Rounding.swift | 35 ++++++++++--------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/LeadKit/LeadKit/Extensions/Double/Double+Rounding.swift b/LeadKit/LeadKit/Extensions/Double/Double+Rounding.swift index 28e7bdc4..4b329249 100644 --- a/LeadKit/LeadKit/Extensions/Double/Double+Rounding.swift +++ b/LeadKit/LeadKit/Extensions/Double/Double+Rounding.swift @@ -11,31 +11,34 @@ import Foundation public extension Double { /** - rounds double value 1.7860000004 to 1.79 + Type of rounding double value - - parameter val: value for rounding - - parameter persicion: important number of digits after comma - - - returns: rounded value + - Normal: From 167.567 you will get 167.6 + - Down: From 167.567 you will get 167.5 */ - public func roundValue(withPersicion persicion: UInt) -> Double { - let divider = pow(10.0, Double(persicion)) - - return round(self * divider) / divider + public enum RoundingType { + case Normal + case Down } /** - discard dractional part double value 1.7860000004 to 1.78 + Rounding of double value - - parameter val: value for discarding dractional part - parameter persicion: important number of digits after comma + - parameter roundType: rounding type - - returns: value with discarded dractional part + - returns: rounded value */ - func discardFractionalTo(number: Int) -> Double { - let divider = pow(10.0, Double(number)) - let roundedNumber = Double(Int(self * divider)) / divider - return roundedNumber + public func roundValue(withPersicion persicion: UInt, + roundType: RoundingType = .Normal) -> Double { + let divider = pow(10.0, Double(persicion)) + + switch roundType { + case .Normal: + return round(self * divider) / divider + case .Down: + return Double(Int(self * divider)) / divider + } } }