new roundValue

This commit is contained in:
Grigory Ulanov 2016-09-12 17:01:09 +03:00
parent 35d391d589
commit f93ddf1446
1 changed files with 19 additions and 16 deletions

View File

@ -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
}
}
}