Commit 8255a10a authored by Noah Zinsmeister's avatar Noah Zinsmeister

don't pad integer quotients with decimal 0s

parent 8d040644
...@@ -65,10 +65,12 @@ export class Fraction { ...@@ -65,10 +65,12 @@ export class Fraction {
.div(this.denominator.toString()) .div(this.denominator.toString())
.toSignificantDigits(significantDigits) .toSignificantDigits(significantDigits)
const decimalPlaces = const decimalPlaces =
quotient.precision(true) >= significantDigits quotient.decimalPlaces() === 0
? quotient.decimalPlaces() ? 0 // 0 decimal places for integer quotients
: significantDigits - (quotient.precision(true) - quotient.decimalPlaces()) : quotient.precision(true) >= significantDigits
return quotient.toFormat(Math.min(decimalPlaces, maximumDecimalPlaces), format) ? quotient.decimalPlaces() // else, the default number of decimal plcaes if there's enough precision already
: significantDigits - (quotient.precision(true) - quotient.decimalPlaces()) // else, pad with 0s
return quotient.toFormat(Math.min(decimalPlaces, maximumDecimalPlaces), format) // while respecting max
} }
public toFixed( public toFixed(
......
...@@ -69,8 +69,8 @@ describe('entities', () => { ...@@ -69,8 +69,8 @@ describe('entities', () => {
expect(route.midPrice.toSignificant(2)).toEqual('1200') expect(route.midPrice.toSignificant(2)).toEqual('1200')
expect(route.midPrice.toSignificant(3)).toEqual('1230') expect(route.midPrice.toSignificant(3)).toEqual('1230')
expect(route.midPrice.toSignificant(4)).toEqual('1234') expect(route.midPrice.toSignificant(4)).toEqual('1234')
expect(route.midPrice.toSignificant(5)).toEqual('1234.0') expect(route.midPrice.toSignificant(5)).toEqual('1234')
expect(route.midPrice.toSignificant(5, { groupSeparator: ',' })).toEqual('1,234.0') expect(route.midPrice.toSignificant(5, { groupSeparator: ',' })).toEqual('1,234')
expect(route.midPrice.invert().toSignificant(1)).toEqual('0.0008') expect(route.midPrice.invert().toSignificant(1)).toEqual('0.0008')
expect(route.midPrice.invert().toSignificant(2)).toEqual('0.00081') expect(route.midPrice.invert().toSignificant(2)).toEqual('0.00081')
expect(route.midPrice.invert().toSignificant(3)).toEqual('0.000810') expect(route.midPrice.invert().toSignificant(3)).toEqual('0.000810')
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment