:)
Ennenkuin kukaan käyttää aikaansa tuohon, niin kyseessähän on ihan sulkuvirhe! Löysin virheen aivan melkein edellisen viestin kirjoitettuani. Pahoitteluni teille, hyvä mieli meille!
vol=0.00011547*pow(plot_diameters[k],1.89074+0.019089*(plot_diameters[k]+h)) * pow(h,0.64146-0.034968*plot_diameters[k]);
Hei
Koetan saada eraan laskun toimimaan C:lla mutta ei onnaa.
Excelin laskentapohjaan kaava on kirjoitettu:
0.00011547*A3^(1.89074+0.019089*(A3+B3))*B3^(0.64146-0.034968*A3)
Missa A3 on läpimitta ja B3 pituus.
Koetin vääntää siita vastaavan koodinpätkän, joka kuitenkin laskee double -tyypin muuttujaan arvoja kuten 3.123234345543e-007. Eli ei sinne päinkään.
Muuttujat ovat doubleja. Koodissa kaava näyttää tältä:
vol=pow(0.00011547*plot_diameters[k],1.89074+0.019089*(plot_diameters[k]+h)) * pow(h,0.64146-0.034968*plot_diameters[k]);
Tässä plot_diameters[k] on läpimitta ja h pituus.
Mikä pielessä, koetin myös apumuuttujien avulla, mutta sama tulos.
Laskujärjestyssäännöt! 0.00011547 ei kuulu potenssin kantalukuun, ota se pois pow-funktiosta.
0.00011547 * A3^x
oli siis lauseke.
0.00011547 * (A3^x)
on oikein,
(0.00011547 * A3)^x
on väärin.
Jahas, ajattelin jo että joku on postas tänne vahingossa demin foorumin sijaan... :)
Aihe on jo aika vanha, joten et voi enää vastata siihen.