Fix decimal rounding

This commit is contained in:
Ilya Laktyushin 2022-07-26 02:55:07 +03:00
parent a4a358cdaf
commit 53085d396e

View File

@ -13,6 +13,18 @@ private let productIdentifiers = [
"org.telegram.telegramPremium.threeMonths"
]
private extension NSDecimalNumber {
func round(_ decimals: Int) -> NSDecimalNumber {
return self.rounding(accordingToBehavior:
NSDecimalNumberHandler(roundingMode: .down,
scale: Int16(decimals),
raiseOnExactness: false,
raiseOnOverflow: false,
raiseOnUnderflow: false,
raiseOnDivideByZero: false))
}
}
public final class InAppPurchaseManager: NSObject {
public final class Product: Equatable {
private lazy var numberFormatter: NumberFormatter = {
@ -47,7 +59,7 @@ public final class InAppPurchaseManager: NSObject {
}
public func pricePerMonth(_ monthsCount: Int) -> String {
let price = self.skProduct.price.dividing(by: NSDecimalNumber(value: monthsCount))
let price = self.skProduct.price.dividing(by: NSDecimalNumber(value: monthsCount)).round(2)
return self.numberFormatter.string(from: price) ?? ""
}