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 {
.div(this.denominator.toString())
.toSignificantDigits(significantDigits)
const decimalPlaces =
quotient.precision(true) >= significantDigits
? quotient.decimalPlaces()
: significantDigits - (quotient.precision(true) - quotient.decimalPlaces())
return quotient.toFormat(Math.min(decimalPlaces, maximumDecimalPlaces), format)
quotient.decimalPlaces() === 0
? 0 // 0 decimal places for integer quotients
: quotient.precision(true) >= significantDigits
? 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(
......
......@@ -69,8 +69,8 @@ describe('entities', () => {
expect(route.midPrice.toSignificant(2)).toEqual('1200')
expect(route.midPrice.toSignificant(3)).toEqual('1230')
expect(route.midPrice.toSignificant(4)).toEqual('1234')
expect(route.midPrice.toSignificant(5)).toEqual('1234.0')
expect(route.midPrice.toSignificant(5, { groupSeparator: ',' })).toEqual('1,234.0')
expect(route.midPrice.toSignificant(5)).toEqual('1234')
expect(route.midPrice.toSignificant(5, { groupSeparator: ',' })).toEqual('1,234')
expect(route.midPrice.invert().toSignificant(1)).toEqual('0.0008')
expect(route.midPrice.invert().toSignificant(2)).toEqual('0.00081')
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