> For the complete documentation index, see [llms.txt](https://hanuce.gitbook.io/javascript-egitimi/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hanuce.gitbook.io/javascript-egitimi/ilkel-primitive-veri-tipleri/number-sayi/number-metotlari.md).

# Number Metotları

## Basamak Sınırlama

> **`.toFixed()`** | **`.toPrecision()`**

Ondalık gösterimlerdeki hataları çözmek için **`.toFixed()`** metodu ile ondalık basamağı sınırlayabiliriz. Örnek.

{% code lineNumbers="true" %}

```javascript
let sayi1 = 0.1;
let sayi2 = 0.2;
let toplam = (sayi1 + sayi2).toFixed(2);
alert(toplam); // 0.30 Çıktısı alınır.
toplam = (sayi1 + sayi2).toFixed(4);
alert(toplam); // 0.3000 Çıktısı alınır.
```

{% endcode %}

Bu metot ile parametre olarak verdiğiniz sayı kadar ondalık basamak kadar sayı ele alınır. Eğer sayının olduğundan daha fazla basamak verirseniz 0 (sıfır) ekleyerek istediğiniz basamak sayısına sabitler. **`.toFixed()`** metodunun **string tipinde değer döndürdüğünü unutmayınız.**

Genel olarak sayıların basamak sayısını sınırlamak için **`.toPrecision()`** metodu kullanılır.

{% code lineNumbers="true" %}

```javascript
let sayi1 = 1234.5678;
alert( sayi1.toPrecision(6) ); //1234.57 çıktısı alınır. Son basamağı yuvarlar.
alert( sayi1.toPrecision(4) ); //1234 çıktısı alınır. Son basamağı yuvarlar.

sayi1 = 123456789;
alert( sayi1.toPrecision(6) ); //1.23457e+8 çıktısı alınır. Son basamağı yuvarlar.
alert( sayi1.toPrecision(4) ); //1.235e+8 çıktısı alınır. Son basamağı yuvarlar.
```

{% endcode %}

**`.toPrecision()`** ile basamak sınırlarken soldan başlar ve verilen parametre kadar basamağı alır. Örneğin 1234'ün ilk iki basamağını alırsak 1200 olduğu için 1.2e+3 olarak yuvarlar. Tam sayılarda sayının birler basamağına kadar olan kısmını almıyorsanız genellikle ***e*** (exponent) ile gösterim yapar.

## Sayı Sistemlerini Çevirme

> **`.toString()`**

Sayı sistemlerini (16-10-8-2 vb.) birbirine **`.toString()`** metodu ile çevirebiliriz. Örnek.

{% code lineNumbers="true" %}

```javascript
let sayi = 123456789;
let binary = 1001000111;
alert( sayi.toString(2) );
alert( binary.toString(10) );

alert( binary.toString(16) );
alert( sayi.toString(8) );
alert( sayi.toString(5) );
```

{% endcode %}

Bir sayı doğrudan da **`.toString()`** metodu ile çevrilebilir fakat ondalıklı sayılarda hata almamak için parantez içine almak veya çift nokta kullanmak gerekir.

{% code lineNumbers="true" %}

```javascript
alert( 1234.toString(2) );
alert( (1234.2).toString(2) );
alert( 1234.2..toString(2) );
```

{% endcode %}

**`.toString()`** metodu ile elde edilen veri tipi **string** olur. Dolayısıyla matematiksel işlemlerde kullanmak için **number tipine dönüştürülmesi gerekir.**
