Liczba decimal zmienia się po przekroczeniu 16 cyfr

0

Witam,
mam problem z liczbami w inpucie typu number, które składają się z więcej niż 16 cyfr. Po wprowadzeniu w input liczby np. 1234567890123456789,22 w drugim inpucie, do którego trafia ta wartość zmodyfikowana do liczby całkowitej, otrzymuję: 1234567890123456800.

Najlepiej zobrazuje to przykład poniżej:
https://jsfiddle.net/gsferreira/Lsv9f0b0/

Dlaczego tak się dzieje? Czy można coś z tym zrobić? Czy należy ograniczyć pole maksymalnie do 16 znaków?

Pozdrawiam

2

Typy danych mają ograniczoną pojemność, w zależności od standardu i architektury do 32 lub 64 bitów. W związku z tym nie pomieszczą zbyt dużych liczb.

Żeby przechowywać duże liczby stosuje się gotowe albo własne implementacje. Szukaj pod hasłami "bigint", "bidecimal" itd.

1 użytkowników online, w tym zalogowanych: 0, gości: 1