Skip to content

Commit 95285f8

Browse files
committed
fix: Serialize -0 as -0 (fixes #638)
1 parent 03709ca commit 95285f8

2 files changed

Lines changed: 4 additions & 1 deletion

File tree

src/stringify/stringifyNumber.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ export function stringifyNumber({
99
if (typeof value === 'bigint') return String(value)
1010
const num = typeof value === 'number' ? value : Number(value)
1111
if (!isFinite(num)) return isNaN(num) ? '.nan' : num < 0 ? '-.inf' : '.inf'
12-
let n = JSON.stringify(value)
12+
let n = Object.is(value, -0) ? '-0' : JSON.stringify(value)
1313
if (
1414
!format &&
1515
minFractionDigits &&

tests/doc/stringify.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,9 @@ for (const [name, version] of [
4343
test('Number', () => {
4444
expect(YAML.stringify(new Number(3.141), { version })).toBe('3.141\n')
4545
})
46+
test('negative zero', () => {
47+
expect(YAML.stringify(-0, { version })).toBe('-0\n')
48+
})
4649

4750
test('float with trailing zeros', () => {
4851
const doc = new YAML.Document<YAML.Scalar, false>(3, { version })

0 commit comments

Comments
 (0)