рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рджреЛ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рддреАрди рдЧреИрд░-рдорд╛рдирдХ рдкреНрд░рдХрд╛рд░ рдХреА рд╕рдВрдЦреНрдпрд╛

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реЛрддреА рд╣реИ - рд╕рдВрдЦреНрдпрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдпрд╣ рдмреЗрд╢рдХ Int рдФрд░ Float рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реИ, рд╣рд╛рд▓рд╛рдБрдХрд┐ рдпрд╣ рдереЛрдбрд╝рд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, parseInt рдлрд╝рдВрдХреНрд╢рди - parseFloat рдореЗрдВ) рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ (рдЗрдВрдЯ рдФрд░ рдлреНрд▓реЛрдЯ рджреЛрдиреЛрдВ) рдХреЛ рдЫреЛрдЯрд╛ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЕрдВрд╢реЛрдВ рдХреЛ рджрд╢рдорд▓рд╡ рдФрд░ рдЧреЛрд▓ рдореЗрдВ рдШрдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рджреЛрдиреЛрдВ рд╣рдореЗрд╢рд╛ рдЕрдЪреНрдЫреЗ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдп рджрд┐рдЦрд╛рдИ рджрд┐рдП рд╣реИрдВ рдЬреЛ рдЕрд╕рд╛рдорд╛рдиреНрдп рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдирдИ рдХрдХреНрд╖рд╛рдПрдВ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред

BigInt

рд╕рдВрдЦреНрдпрд╛ (рдЗрдВрдЯ рдФрд░ рдлреНрд▓реЛрдЯ рджреЛрдиреЛрдВ) рдХреЛ 15 рд╡рд░реНрдгреЛрдВ рддрдХ рдЫреЛрдЯрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрдВрдЯ рдореЗрдВ, рд╢реЗрд╖ рдЕрдВрдХ рд╢реВрдиреНрдп рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдПрдХ рдЙрджрд╛рд╣рд░рдг:
>> 100000000000000000111 100000000000000000000 

рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ BigNumber рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╣рдо рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:
 var num = new BigNumber('100000000000000000001'); num.add(1); // 100000000000000000002 

рдмрд╛рдХреА рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкреГрд╖реНрда рдкрд░ , рдЕрдзрд┐рдХрд╛рдВрд╢ рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдп (+ - * /) рд╣реИрдВ, рд╕рдВрдЦреНрдпрд╛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВ, рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХрд░реЗрдВ, рдФрд░ рдПрдХ рд╣реА рд╕реБрдкрд░рдирдВрдмрд░ред

BigFloat

рдПрдХ рдлреНрд▓реЛрдЯ рднреА рд╣реИ, 15 рд╡рд░реНрдг рднреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрдЦреНрдпрд╛ рдмрд╕ рдмрд╛рд╣рд░ рдлреЗрдВрдХ рджреА рдЬрд╛рддреА рд╣реИред
 >> 3.14159265358979323 3.141592653589793 

рдЖрдк рдПрдХ рд╣реА рд╕реНрд╡рд░реВрдк рдореЗрдВ рдПрдХ рд╣реА рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
 var pi = new BigNumber('3.14159265358979323'); pi.add('0.00000000000000003'); // 3.14159265358979326 


рдЕрдВрд╢

рддреАрд╕рд░рд╛ рдкреНрд░рдХрд╛рд░ рдЕрдВрд╢ рд╣реИред рд╕рдВрдЦреНрдпрд╛ рдЧреЛрд▓ рд╣реИред рдФрд░ рдЗрд╕рдХреЗ рдХрд╛рд░рдг, рдкрд░рд┐рдгрд╛рдо рдЦрд░рд╛рдм рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
 >> 1/3 0.3333333333333333 >> 1/3 + 2/3 1 >> 0.3333333333333333 + 0.6666666666666666 1 


рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ Fraction.js рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИред
 var a = new Fraction(1,3); a.add( new Fraction(2,3) ); // 1 

рдмрд╕ рдЗрддрдирд╛ рд╣реА

рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

Source: https://habr.com/ru/post/In147037/


All Articles