Ugrás a tartalomhoz

std::round

A Wikiszótárból, a nyitott szótárból


Főnév

std::round (tsz. std::rounds)

  1. (informatika) A std::round C++-ban egy matematikai függvény a <cmath> könyvtárban, amely egy adott lebegőpontos számot a legközelebbi egész számra kerekít. Ha a szám pontosan a két legközelebbi egész közé esik (x.5), akkor a páros egész szám felé kerekít (bankers’ rounding).



Szintaxis:

#include <cmath>
double round(double x);
float round(float x);
long double round(long double x);

Túlterhelt változat egész típusokra:

double round(int x);

Működés:

  • std::round(x) az x értékét a legközelebbi egész számra kerekíti.
  • Ha az x értéke x.5, akkor a legközelebbi páros egész számra kerekít.
  • Az eredmény lebegőpontos típus marad.



Példa:

#include <iostream>
#include <cmath>

int main() {
    double num1 = 3.2;
    double num2 = 3.8;
    double num3 = 4.5;
    double num4 = 5.5;
    double num5 = -2.5;

    std::cout << "round(3.2) = " << std::round(num1) << std::endl;  // 3
    std::cout << "round(3.8) = " << std::round(num2) << std::endl;  // 4
    std::cout << "round(4.5) = " << std::round(num3) << std::endl;  // 4 (páros felé kerekítés)
    std::cout << "round(5.5) = " << std::round(num4) << std::endl;  // 6 (páros felé kerekítés)
    std::cout << "round(-2.5) = " << std::round(num5) << std::endl; // -2 (páros felé kerekítés)

    return 0;
}

Kimenet:

round(3.2) = 3
round(3.8) = 4
round(4.5) = 4
round(5.5) = 6
round(-2.5) = -2

Fontos tudnivalók:

  • Eltér a std::ceil és std::floor függvényektől, mert nem mindig felfelé vagy lefelé kerekít, hanem a legközelebbi egész számot választja.
  • Ha a szám pontosan x.5, akkor a kerekítés a legközelebbi páros egész szám felé történik. Ez az úgynevezett bankers’ rounding.
  • Az eredmény lebegőpontos marad, nem egész szám.