Tytuł: pojedyncza i podwójna prcyzja Wiadomość wysłana przez: KASIUNIA206 Październik 20, 2011, 13:45:17 witam, mam problem poniważ mam program który ma w pojdynczej i podwójnej precyzji liczyć mi dowolny wielomian.
#include <iostream> using namespace std; template <class T> T f(T x) { return (2*x*x)+3*x+1; } template <class T> void functionTwo(int n) { T h = 1.0/T(n); T sum = 0.0; for(int i=0; i<n; i++) { T x=T(i)*h; sum+=f<T>(x); } cout<<" blad = "<<f<T>((T)n)-sum<<endl; } int main() { int n = 100000; for(int i=1;i<n;i++){ cout<<"float, n = "<<i; functionTwo<float>(n); cout<<"double, n = "<<i; functionTwo<double>(n); } return 0; } [p uruchomieniu programu wiskakuje mi :int n = 1000000000 dla takiej wartości wyskakuje mi "float, n = 1 blad = 2e+18" czy to oznacza ze już pogram nie może wykonac obliczeń w podwójnej prcyzji? ponadto wyskakuje mi błąd wykonania " przy n=1000... może znów robie cos nie tak???? |