# X++ Round, RoundDown, RoundUp, Trunc in Dynamics 365 FO

Bu yazıda X++ dilinde yuvarlama fonksiyonlarından bahsetmek istiyorum.

Aşağıda tablo halinde yuvarlama, aşağı yuvarlama ve yukarı yuvarlama yöntemleri ile ilgili örnek kodlar paylaştım.

### `Güncelleme (04.01.2024)`

Verilen değeri tam sayıya yuvarlayan **trunc** işlevini de yazıya ekledim.

| Değer | Yöntem | Kod | Çıktı / Sonuç |
| --- | --- | --- | --- |
| 10.49 | Yukarı yuvarla | roundUp(10.49, 1) | 11 |
| 10.51 | Aşağı yuvarla | roundDown(10.51, 1) | 10 |
| 2.79 | Tam sayıya yuvarlama | trunc(2.79) | 2 |
| 10.50 | Yuvarla | round(10.50, 1) | 11 |
| 10.49 | Yuvarla | round(10.49, 1) | 10 |
| 10.51 | Yuvarla | round(10.51, 1) | 11 |
| 10.495000 | Küsüratlı yuvarla | round(10.495000, 0) | 10.50 |
| 10.494999 | Küsüratlı yuvarla | round(10.494999, 0) | 10.49 |
| 10.495111 | Küsüratlı yuvarla | round(10.495111, 0) | 10.50 |
| 10.654444 | Küsüratlı yuvarla | decRound(10.654444, 2) | 10.65 |
| 10.655555 | Küsüratlı yuvarla | decRound(10.655555, 2) | 10.66 |

```csharp
internal final class ETG_BC_RoundRunnableClass
{
    /// <summary>
    /// Class entry point. The system will call this method when a designated menu 
    /// is selected or when execution starts and this class is set as the startup class.
    /// </summary>
    /// <param name = "_args">The specified arguments.</param>
    public static void main(Args _args)
    {
        info(strFmt("Yukarı yuvarla 10.49=%1", roundUp(10.49, 1)));
        //11

        info(strFmt("Aşağı yuvarla 10.51=%1", roundDown(10.51, 1)));
        //10

        info(strFmt("Yuvarla 10.50=%1", round(10.50, 1)));
        //11

        info(strFmt("Yuvarla 10.49=%1", round(10.49, 1)));
        //10

        info(strFmt("Yuvarla 10.51=%1", round(10.51, 1)));
        //11
        
        info(strFmt("Küsüratlı yuvarla 10.495000=%1", round(10.495000, 0)));
        //10.50

        info(strFmt("Küsüratlı yuvarla 10.494999=%1", round(10.494999, 0)));
        //10.49
        
        info(strFmt("Küsüratlı yuvarla 10.495111=%1", round(10.495111, 0)));
        //10.50

        info(strFmt("Küsüratlı yuvarla 10.654444=%1", decRound(10.654444, 2)));
        //10.65

        info(strFmt("Küsüratlı yuvarla 10.655555=%1", decRound(10.655555, 2)));
        //10.66
    }

}
```
