paras vastaus
std :: nearbyint yli: pyöristää kelluvan -piste-argumentti arg
kokonaislukuarvoksi liukulukuisena käyttämällä nykyistä pyöristystilaa .
std :: round : Laskee lähimmän kokonaisluvun arvon arg
(liukulukuisena) , pyöristetään puolitapaukset poispäin nollasta riippumatta nykyisestä pyöristystilasta.
Joten siinä on ero. Jos haluat käyttää muuta pyöristystilaa kuin mitä std :: round käyttää, käytä std :: nearbyint (tai std :: rint , ne ovat lähes identtisiä) .
Huomaa, että vaikka valitsisitkin FE\_TONEAREST, siinä on ero: std :: nearbyint / std :: rint pyöristää puolivälissä olevat tapaukset tasaiseksi, kun taas std :: pyöristää pois nollasta.