From 7c047cf5f98d2b74ce5920cab9b2c97fe8f90c9f Mon Sep 17 00:00:00 2001 From: Yarchik Date: Thu, 2 Jul 2026 13:16:27 +0100 Subject: [PATCH] fix(number-format): honor min/max-fraction-digits of 0 --- .../expression/definitions/number_format.ts | 4 +-- .../max-fraction-digits-zero/test.json | 28 +++++++++++++++++++ 2 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 test/integration/expression-tests/number-format/max-fraction-digits-zero/test.json diff --git a/src/style-spec/expression/definitions/number_format.ts b/src/style-spec/expression/definitions/number_format.ts index b288b94754a..3e8c1234290 100644 --- a/src/style-spec/expression/definitions/number_format.ts +++ b/src/style-spec/expression/definitions/number_format.ts @@ -61,13 +61,13 @@ export default class NumberFormat implements Expression { } let minFractionDigits = null; - if (options['min-fraction-digits']) { + if (options['min-fraction-digits'] !== undefined) { minFractionDigits = context.parseObjectValue(options['min-fraction-digits'], 2, 'min-fraction-digits', NumberType); if (!minFractionDigits) return null; } let maxFractionDigits = null; - if (options['max-fraction-digits']) { + if (options['max-fraction-digits'] !== undefined) { maxFractionDigits = context.parseObjectValue(options['max-fraction-digits'], 2, 'max-fraction-digits', NumberType); if (!maxFractionDigits) return null; } diff --git a/test/integration/expression-tests/number-format/max-fraction-digits-zero/test.json b/test/integration/expression-tests/number-format/max-fraction-digits-zero/test.json new file mode 100644 index 00000000000..c13ba9ed301 --- /dev/null +++ b/test/integration/expression-tests/number-format/max-fraction-digits-zero/test.json @@ -0,0 +1,28 @@ +{ + "expression": [ + "number-format", + 3.7, + { + "max-fraction-digits": ["get", "max"] + } + ], + "inputs": [ + [{}, {"properties": {"max": 0}}] + ], + "expected": { + "compiled": { + "result": "success", + "isFeatureConstant": false, + "isZoomConstant": true, + "type": "string" + }, + "outputs": ["4"], + "serialized": [ + "number-format", + 3.7, + { + "max-fraction-digits": ["number", ["get", "max"]] + } + ] + } +}