From 35d391d58927ee751d637260314d686969d35dcd Mon Sep 17 00:00:00 2001 From: Grigory Ulanov Date: Mon, 12 Sep 2016 16:42:32 +0300 Subject: [PATCH 1/3] Double discardFractionalTo added --- .../Extensions/Double/Double+Rounding.swift | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/LeadKit/LeadKit/Extensions/Double/Double+Rounding.swift b/LeadKit/LeadKit/Extensions/Double/Double+Rounding.swift index eff310e4..28e7bdc4 100644 --- a/LeadKit/LeadKit/Extensions/Double/Double+Rounding.swift +++ b/LeadKit/LeadKit/Extensions/Double/Double+Rounding.swift @@ -11,7 +11,7 @@ import Foundation public extension Double { /** - rounds double value 1.7800000004 to 1.78 + rounds double value 1.7860000004 to 1.79 - parameter val: value for rounding - parameter persicion: important number of digits after comma @@ -19,9 +19,23 @@ public extension Double { - returns: rounded value */ public func roundValue(withPersicion persicion: UInt) -> Double { - let divider = pow(10.0, Double(persicion - 1)) + let divider = pow(10.0, Double(persicion)) return round(self * divider) / divider } + /** + discard dractional part double value 1.7860000004 to 1.78 + + - parameter val: value for discarding dractional part + - parameter persicion: important number of digits after comma + + - returns: value with discarded dractional part + */ + func discardFractionalTo(number: Int) -> Double { + let divider = pow(10.0, Double(number)) + let roundedNumber = Double(Int(self * divider)) / divider + return roundedNumber + } + } From f93ddf14467a76c83c20dc1c11362e21e34ab4ed Mon Sep 17 00:00:00 2001 From: Grigory Ulanov Date: Mon, 12 Sep 2016 17:01:09 +0300 Subject: [PATCH 2/3] 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 + } } } From 8560f6220dbf117de5a16488163899d8e83adf3a Mon Sep 17 00:00:00 2001 From: Grigory Ulanov Date: Mon, 12 Sep 2016 17:05:31 +0300 Subject: [PATCH 3/3] spaces removed --- LeadKit/LeadKit/Extensions/Double/Double+Rounding.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LeadKit/LeadKit/Extensions/Double/Double+Rounding.swift b/LeadKit/LeadKit/Extensions/Double/Double+Rounding.swift index 4b329249..df520977 100644 --- a/LeadKit/LeadKit/Extensions/Double/Double+Rounding.swift +++ b/LeadKit/LeadKit/Extensions/Double/Double+Rounding.swift @@ -30,7 +30,7 @@ public extension Double { - returns: rounded value */ public func roundValue(withPersicion persicion: UInt, - roundType: RoundingType = .Normal) -> Double { + roundType: RoundingType = .Normal) -> Double { let divider = pow(10.0, Double(persicion)) switch roundType {