Ĺadny brzuch
double y1=1.0004;
double y2=-0.1190;
double y3=1.5987;
double y4=0.2115;
double y5=-0.6567;
double y6=-0.3514;
double y7=-1.6824;
double pi=3.1415926;
double L=3.5;
double a2=((1/L) * ((y1*cos((pi*2*0)/L))+(y2*cos((pi*2*1)/L))+(y3*cos(
(pi*2*2)/L))+(y4*cos((pi*2*3)/L))+(y5*cos((pi*2*4)
/L))+(y6*cos((pi*2*5)/L))+(y7*cos((pi*2*6)/L))
));
program zwraca wartość a2=-3,05041106365828E-5
jak pozbyc sie E z wyniku.. ??
Zaokrąglić ?
WARTOSC_LICZBY E liczba = WARTOSC_LICZBY*10^liczba (^ - to jest znaczek potęgowania)
W twoim przypadku oznacza to: -3,05041106365828 * 10^-5 = -3,05041106365828 * 0,00001 = -0,0000305041106365828
Użytkownik Ku.ririn edytował ten post 27 sierpień 2005, 11:32
ok a w jaki sposob mozna zaokraglic liczbe do 4 miejsc po przecinku?
tam zdaje sie uzywa sie
floor(liczba);
ceil(liczba);
tylko nie bardzo wiem jak konkretnie to ma wygladac.. które w dol które w gore.. i jak ta funkcje wkleic do mojego kodu... :unsure:
MSDN rządzi:
ceil: http://msdn.microsof...l/_crt_ceil.asp
floor: http://msdn.microsof.../_crt_floor.asp
Wymagany nagłówek: math.h
floor: zaokrągla w dół
ceil: w góre
#include <iostream> #include <string> #include <sstream> using namespace std; double StrToDouble(string s) { return atof(s.c_str()); } string DoubleToStr(double d) { stringstream ss; ss << d; return ss.str(); } double RoundDouble(double d, int licz) { string s = DoubleToStr(d), s2; int pom = 0; bool b = false; for(int i = 0; i < s.length(); i++) { s2 += s[i]; if(b) pom++; if(pom==licz) break; if(s[i]=='.') b = true; } double result = StrToDouble(s2); return result; } int main() { double d = 10.1234; cout << RoundDouble(d,2) << endl; cin.get(); }
znalazłam nieco przyjemniejszy i łatwiejszy sposob... :)
Jesli wynik musi byc wpisywany na formularzu w jakies okienko edycyjne tak jak w moim przypadku mozna spokojnie zastosowac te metode :)
Edit1->Text = CurrToStrF(a0, ffFixed, 4);
wczesniej oczywiscie musi byc zadeklarowane a0 czy jakas tam inna zmienna a 4 w tym przypadku to liczba miejsc po przecinku do jakiej chcemy zmniejszyc lub zwiekszyc wynik..
dzieki za pomoc
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
program zwraca wartość a2=-3,05041106365828E-5
jak pozbyc sie E z wyniku.. ??
Zaokrąglić ?
WARTOSC_LICZBY E liczba = WARTOSC_LICZBY*10^liczba (^ - to jest znaczek potęgowania)
W twoim przypadku oznacza to: -3,05041106365828 * 10^-5 = -3,05041106365828 * 0,00001 = -0,0000305041106365828
Użytkownik Ku.ririn edytował ten post 27 sierpień 2005, 11:32
ok a w jaki sposob mozna zaokraglic liczbe do 4 miejsc po przecinku?
tam zdaje sie uzywa sie
floor(liczba);
ceil(liczba);
tylko nie bardzo wiem jak konkretnie to ma wygladac.. które w dol które w gore.. i jak ta funkcje wkleic do mojego kodu... :unsure:
MSDN rządzi:
ceil: http://msdn.microsof...l/_crt_ceil.asp
floor: http://msdn.microsof.../_crt_floor.asp
Wymagany nagłówek: math.h
floor: zaokrągla w dół
ceil: w góre
#include <iostream> #include <string> #include <sstream> using namespace std; double StrToDouble(string s) { return atof(s.c_str()); } string DoubleToStr(double d) { stringstream ss; ss << d; return ss.str(); } double RoundDouble(double d, int licz) { string s = DoubleToStr(d), s2; int pom = 0; bool b = false; for(int i = 0; i < s.length(); i++) { s2 += s[i]; if(b) pom++; if(pom==licz) break; if(s[i]=='.') b = true; } double result = StrToDouble(s2); return result; } int main() { double d = 10.1234; cout << RoundDouble(d,2) << endl; cin.get(); }
znalazłam nieco przyjemniejszy i łatwiejszy sposob... :)
Jesli wynik musi byc wpisywany na formularzu w jakies okienko edycyjne tak jak w moim przypadku mozna spokojnie zastosowac te metode :)
Edit1->Text = CurrToStrF(a0, ffFixed, 4);
wczesniej oczywiscie musi byc zadeklarowane a0 czy jakas tam inna zmienna a 4 w tym przypadku to liczba miejsc po przecinku do jakiej chcemy zmniejszyc lub zwiekszyc wynik..
dzieki za pomoc