Beträge in c++
-
Hallo ,
Ich bin dabei ein statistisches Program in c++ zu schreiben und möchte auch das feature "durchschnittle Abweichung des arithmetischen Mittels " mit einbauen das problem ist nur, dass ich nicht weis wie ich dem Compiler sagen kann das er nur den Betrag einer Zahl vom Arithmetischen Mittel subtrahieren soll .....also kurz gesgat wie kann man den Betrag einer Zahl in c++ darstellen weil dei normlane Betragsstriche |x| akzeptiert der compiler nicht und meldet sie als syntaxerror.
-
abs()
-
fabsFür Fließkommazahlen.
grüße
-
syr was meinst du mit fließkommazahlen?? binnoch anfänger
und zu dem beitrag darüber also dann einfach abs(-4) ??? um den betrag von -4 zu erhalten?
-
kannst du das nicht selbst ausprobieren?
-
Hi!
@noob123:
Fließkommazahlen sind annäherungen an Reale Zahlen, also mit Nachkommastellen. Die Funktion abs() arbeitet mit ganzen Zahlen, wenn du den Betrag von -3.14 haben willst und die Nachkommastellen nicht verlieren willst nimmst du fabs().#include <cmath> int main( void ) { float f = -3.14; int i = -3; f = fabs( f ); i = abs( i ); }grüße
-
hi ....vielen dank ....

-
omfg, wirklich "fabs" ? wer hat sich des ausgedacht? warum "f" als präfix drangesetzt, obwohl es bei den ganzen sinf() cosf() tanf() funktionen hinter dem eigentlichen funktionsnamen steht?
-
Diese Namensgebung ist auch an anderen Stellen so:
abs fabs labs div ldivfabs ist also keineswegs die Ausnahme!

grüße
-
gut, keine "ausnahme"... die hälfte der funktionen ist einfach mit präfix "f", die andere mit suffix "f"... ob des sinn macht?
-
Andrey schrieb:
omfg, wirklich "fabs" ? wer hat sich des ausgedacht? warum "f" als präfix drangesetzt, obwohl es bei den ganzen sinf() cosf() tanf() funktionen hinter dem eigentlichen funktionsnamen steht?
Das ist bei fabs ebenfalls so.
fabs, fabsf, fabsl
Das f vor dem Namen steht hier einfach für floating-point (als Kontrast zu Ganzzahlen) und nicht für den konkreten Typ.
In C++ verwendet man diese Prä- bzw. Suffixe, die einen konkreten Typ ausdrücken, sowieso besser nicht, da die Funktionen überladen sind bzw. teilweise gar nicht existieren. Da schreibt man zB einfach sin oder cos, egal ob das Argument vom Typ float, double oder long double.