arfman
18.08.05, 19:15
Hallo,
wie kann ich in C++ ein double korrekt auf ganze Zahlen runden? (Also, kaufmännisches Runden). Der normale typcast wirkt wie floor(d) und rundet nur ab :(
/edit: er rundet jetzt...
breite[i] = ((int)b[i] == (int)(b[i]+0.5)) ? (int)b[i] : (int)(b[i]+0.5); // b[i] < .5? abrunden : aufrunden
start[i] = ((int)s[i] == (int)(s[i]+0.5)) ? (int)s[i] : (int)(s[i]+0.5); // s[i] < .5? abrunden : aufrunden
fürchte nur, der Algorithmus ist nicht sehr optimal ;)
wie kann ich in C++ ein double korrekt auf ganze Zahlen runden? (Also, kaufmännisches Runden). Der normale typcast wirkt wie floor(d) und rundet nur ab :(
/edit: er rundet jetzt...
breite[i] = ((int)b[i] == (int)(b[i]+0.5)) ? (int)b[i] : (int)(b[i]+0.5); // b[i] < .5? abrunden : aufrunden
start[i] = ((int)s[i] == (int)(s[i]+0.5)) ? (int)s[i] : (int)(s[i]+0.5); // s[i] < .5? abrunden : aufrunden
fürchte nur, der Algorithmus ist nicht sehr optimal ;)