diff --git a/YLErpWeb/fe-tests/swapPrecisionConfig.test.js b/YLErpWeb/fe-tests/swapPrecisionConfig.test.js index 84036a43..42e7dba5 100644 --- a/YLErpWeb/fe-tests/swapPrecisionConfig.test.js +++ b/YLErpWeb/fe-tests/swapPrecisionConfig.test.js @@ -135,6 +135,13 @@ describe('swap price precision common wiring', () => { expect(helper.getCommonInputFormat('quantity', { append: '' }).grouping).toBe(false); }); + test('quantity display can trim trailing zeros without changing configured precision', () => { + const helper = loadHelper({ common: { quantity: { precision: 8, grouping: true } } }); + expect(helper.formatCommon('quantity', '10000.12345600', { trimTailZeros: true })) + .toBe('10,000.123456'); + expect(helper.formatCommon('quantity', '10000.12345600')).toBe('10,000.12345600'); + }); + test('missing or invalid asset quantity precision falls back to common quantity precision', () => { const helper = loadHelper({ common: { quantity: { precision: 3, grouping: true } }, diff --git a/YLErpWeb/wwwroot/Scripts/app/swaptrade/swapPricePrecisionHelper.js b/YLErpWeb/wwwroot/Scripts/app/swaptrade/swapPricePrecisionHelper.js index 3fcd3603..f3ed4f16 100644 --- a/YLErpWeb/wwwroot/Scripts/app/swaptrade/swapPricePrecisionHelper.js +++ b/YLErpWeb/wwwroot/Scripts/app/swaptrade/swapPricePrecisionHelper.js @@ -244,7 +244,10 @@ var swapPricePrecision = (function (global) { const formatted = formatFixed(displayValue, rule.precision); if (!formatted) return ''; const grouping = options && options.grouping !== undefined ? !!options.grouping : rule.grouping; - const text = grouping ? groupDecimal(formatted) : formatted; + const trimmed = options && options.trimTailZeros === true + ? formatted.replace(/(\.\d*?[1-9])0+$/, '$1').replace(/\.0+$/, '') + : formatted; + const text = grouping ? groupDecimal(trimmed) : trimmed; return kind === 'rate' ? text + '%' : text; } diff --git a/YLErpWeb/wwwroot/Scripts/app/swaptrade/swapTradeView.js b/YLErpWeb/wwwroot/Scripts/app/swaptrade/swapTradeView.js index c6ad4bac..0cd7bc04 100644 --- a/YLErpWeb/wwwroot/Scripts/app/swaptrade/swapTradeView.js +++ b/YLErpWeb/wwwroot/Scripts/app/swaptrade/swapTradeView.js @@ -14,7 +14,8 @@ function formatSwapCommonElements() { this.textContent = swapPricePrecision.formatCommon( this.dataset.kind, this.dataset.value, - this.dataset.instrumentType); + this.dataset.instrumentType, + this.dataset.kind === 'quantity' ? { trimTailZeros: true } : undefined); }); }