რიცხვები
ჯავასკრიპტში რიცხვები "ორმაგი-სიზუსტის 64-ბიტიანი ფორმატით" არის წარმოდგენილი, ტექნიკურად ამ ენაში არ არსებობს არანაირი integer
(მთელი რიცხვი) ტიპი, ამიტომ სიფრთხილე უნდა გამოიჩინოთ მათემატიკური ოპერაციების დროს:
console.log(3/2); // 1.5, not 1
console.log(Math.floor(3/2)); //1
გამოდის რომ, მთელი რიცხვი ჯავასკრიპტში - ათწილადია.
ასევე, ყურადღება მიაქციეთ შემდეგ მაგალIთსაც:
0.1 + 0.2 == 0.30000000000000004;
პრაქტიკულად მთელი რიცხვები განიხილება როგორც 32-bit int
ტიპებად და ასევე ძირითადად ასეცაა შენახული, სანამ ისეთი ოპერაციების განხორცილება არაა საჭირო, რომლებიც უშუალოდ რიცხვებზე სრულდება და არა 32-bit integer
ტიპის ცვლადებზე.
ჯავასკრიპტის მხარდაჭერა მოიცავს სტანდარტულ არითმეტიკულ ოპერატორებს, მაგალითად: მიმატება, გამოკლება, მოდულუსი და ა.შ. ასევე არსებობს ჩაშენებული Math
ობიექტებიც, რომლებიც შედარებით მაღალი დონის ოპერაციებს: ფუნქციებს და კონსტანტებს გვთავაზობს, მაგალითად:
Math.sin(3.5);
var circumference = 2 * Math.PI * r;
თქვენ შეგიძლიათ მათი კონვერტაცია string
ან integer
ტიპებში parseInt()
ფუნქციით, რომელიც ასევე იღებს გარდაქმნის "საფუძველს" მეორე, ნებაყოფლობით არგუმენტს რომლებიც რეკომენდირებულია რომ აუცილებლად მოაყოლოთ:
parseInt('123', 10) // 123
parseInt('010', 10) // 10
ასევე შეიძლება ბინარული/ორობითი რიცხვის მთელ რიცხვში კონვერტაციაც:
parseInt('11', 2); //3
ამის მსგავსად, შეგვიძლია იგივე ოპერაცია განვახორციელოთ ათწილადებზე, ასევე ჩაშენებული parseFloat()
ფუნქციით, მაგრამ ამ შემთხევაში ფუძე ყოველთვის 10 იქნება, ამიტომ ფუძის მითითება საჭირო აღარ არის.
+
ოპეარტორსაც შეუძლია სტრინგების რიცხვებში გარდაქმნა:
+ '42' // 42
იმ შემთხვევაში თუ კონვერტაციისთვის მითითებული სტრინგი არ არის რიცხვითი, მაშინ მიიღებთ სპეციალური მნიშვნელობა NaN
_ს (Not a Number)
parseInt('hello', 10); //NaN
NaN
ტოქსიკურია, იმ შემთხევაში თუ მიუმატებთ, გამოაკლებთ, ან რაიმე სახის მათემატიკურ ოპერაციას ჩაატარებთ სხვა რიცხვთან ერთად, პასუხი მუდმივად NaN
იქნება:
NaN + 5; //NaN
NaN
_ის შემოწმება შეიძლება ჩაშენებული isNaN()
ფუნქციით:
isNaN(NaN); // true
ჯავასკრიპტში ასევე შევხვდებით უსასრულობის აღმნიშვნელსაც - Infinity
:
1 / 0; // Infinity
-1 / 0; // -Infinity
ParseInt() და parseFloat()
ფუნქციები ამოწმებენ სტრინგს სანამ არ მაიღწევენ ისეთ სიმბოლომდე რომელიც არ არის რიცხვითი მნიშვნელობის და ამ რიცხვამდე დააბრუნებენ ყველა რიცხვით მნიშვნელობას ათწილად ფორმატში მაგრამ + ოპერატორი ასეთ შემთხვევაში მხოლოდ NaN
\ს განახებთ._
Last updated
Was this helpful?