fix(payment-stripe): fix rounding (#8753)
This commit is contained in:
@@ -9,10 +9,13 @@ describe("getSmallestUnit", () => {
|
|||||||
expect(getSmallestUnit(5.124, "KWD")).toBe(5130)
|
expect(getSmallestUnit(5.124, "KWD")).toBe(5130)
|
||||||
|
|
||||||
// 2 decimals
|
// 2 decimals
|
||||||
|
expect(getSmallestUnit(2.675, "USD")).toBe(268)
|
||||||
|
|
||||||
expect(getSmallestUnit(100.54, "USD")).toBe(10054)
|
expect(getSmallestUnit(100.54, "USD")).toBe(10054)
|
||||||
expect(getSmallestUnit(5.126, "KWD")).toBe(5130)
|
expect(getSmallestUnit(5.126, "KWD")).toBe(5130)
|
||||||
expect(getSmallestUnit(0.54, "USD")).toBe(54)
|
expect(getSmallestUnit(0.54, "USD")).toBe(54)
|
||||||
expect(getSmallestUnit(0.054, "USD")).toBe(5)
|
expect(getSmallestUnit(0.054, "USD")).toBe(5)
|
||||||
expect(getSmallestUnit(0.005104, "USD")).toBe(0)
|
expect(getSmallestUnit(0.005104, "USD")).toBe(1)
|
||||||
|
expect(getSmallestUnit(0.004104, "USD")).toBe(0)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -47,10 +47,14 @@ export function getSmallestUnit(
|
|||||||
currency: string
|
currency: string
|
||||||
): number {
|
): number {
|
||||||
const multiplier = getCurrencyMultiplier(currency)
|
const multiplier = getCurrencyMultiplier(currency)
|
||||||
const smallestAmount = new BigNumber(MathBN.mult(amount, multiplier))
|
|
||||||
|
let amount_ =
|
||||||
|
Math.round(new BigNumber(MathBN.mult(amount, multiplier)).numeric) /
|
||||||
|
multiplier
|
||||||
|
|
||||||
|
const smallestAmount = new BigNumber(MathBN.mult(amount_, multiplier))
|
||||||
|
|
||||||
let numeric = smallestAmount.numeric
|
let numeric = smallestAmount.numeric
|
||||||
|
|
||||||
// Check if the currency requires rounding to the nearest ten
|
// Check if the currency requires rounding to the nearest ten
|
||||||
if (multiplier === 1e3) {
|
if (multiplier === 1e3) {
|
||||||
numeric = Math.ceil(numeric / 10) * 10
|
numeric = Math.ceil(numeric / 10) * 10
|
||||||
|
|||||||
Reference in New Issue
Block a user