Double übergeben klappt nicht

Gast #3695744
Lesenswert?

Hallo

Ich versuche meiner Wurzel Funktion einen double zu geben.
Das sieht wie folgt aus:
1
sqrt10((height/r)*(height/r))

height ist ein int
und r ebenfalls.

Leider kommt in sqrt10() nur 0.0 an.
1
double sqrt10(double Nbr)

Ich habe auch bereits versucht die berechnung zu casten:
1
sqrt10((double)(height/r)*(double)(height/r))
1
sqrt10((double)((height/r)*(height/r)))

funktioniert leider beides nicht.

Weiss jemand rat?
Persönliche Seite #3695761
Lesenswert?

Peter II schrieb:
> aber nicht wenn
>
> height = 5
> und
> r = 8
>
> ist, dann kommt halt 0 raus, bei double aber nicht.

Nö. Das ist und bleibt eine int-Division, es sei denn, es werden beide 
Werte nach double gecastet.

Wenn aber nur das Resultat der int-Division nach double gecastet wird, 
ändert sich nichts.

Es gibt also keinerlei Unterschied zwischen
1
srqt(height / r);

und
1
srqt((double) (height / r));

Sinnvoll wird die Angelegenheit erst hier:
1
srqt(((double) height) / ((double) r));

(Potentiell überzählige Klammern zur Verdeutlichung des Ziels der 
jeweiligen Typecasts)
Gast #3695793
Lesenswert?

Peter II schrieb:
> Andreas Schweigstill schrieb:
>> Peter II schrieb:
>>> srqt(double)height/r);
>>
>> Das ist kein gültiger Ausdruck in C-artigen Sprachen.
>
> man muss ja nicht alles vorgeben, etwas mitdenken ist immer gut.
> srqt(double)height/r));

Das ist kein gültiger Ausdruck in C-artigen Sprachen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren