Barcha darslar

Yuqori ยท 7/12

๐Ÿ”ข Raqamlar, aniqlik va katta sonlar

IEEE-754 tuzoqlari, BigInt muammosi, pul qiymatlarini saqlash.

JSON grammatikasi raqam uchun juda sodda: ixtiyoriy minus, butun qism, ixtiyoriy kasr, ixtiyoriy eksponenta. 007, +5, .5, 5., 0x1F, 1_000 โ€” hammasi XATO.

To'g'ri raqamlar
{
  "butun": -42,
  "kasr": 3.14,
  "eksponenta": 6.02e23,
  "nol": 0
}

Aniqlik tuzog'i

JS'da JSON.parse raqamni double (IEEE-754) qiladi. 9007199254740993 โ†’ 9007199254740992 bo'lib ketadi. Katta ID'larni STRING sifatida saqla.

Pul: 19.99 o'rniga tiyinda butun son saqlash yoki string sifatida "19.99" saqlash tavsiya etiladi โ€” suzuvchi nuqta xatolari moliyaviy hisobni buzadi.

NaN va Infinity

Standart ularni taqiqlaydi. Ba'zi parserlar ruxsat beradi (non-standard rejim) โ€” bunga tayanma, null yoki string ishlat.

๐Ÿ›  Mashq: Katta ID'ni to'g'ri saqlab ko'r.

mashq.json
Uy mustahkam โ€” JSON to'g'ri โœ…

Tekshiruv testi

1. Qaysi raqam JSON'da XATO?

2. Katta ID (Twitter/Snowflake) qanday saqlanadi?