Hi rooters, I've noticed the following strange behaviour using ROOT 3.02/07. When I declare a single variable, there are discrepancies between the value entered and actual value stored, even for basic float objects. When a float is declared and filled, the value stored is slightly different from what is needed. In most of the cases this is not a problem, but it can be if the variable is multiplied by a large interger. Is this fact known ? Is there a simple solution? Thanks, Christophe. p.s: Here is a c&p of a minimal session. I'm running linux redhat 6.2 with a precompiled ROOT 3.02/07. uname -a Linux cmswks6.fynu.ucl.ac.be 2.2.14-5.0 #1 Tue Mar 7 21:07:39 EST 2000 i686 unknown ******************************************* * * * W E L C O M E to R O O T * * * * Version 3.02/07 20 February 2002 * * * * You are welcome to visit our Web site * * http://root.cern.ch * * * ******************************************* Compiled for linux with thread support. CINT/ROOT C/C++ Interpreter version 5.15.25, Jan 6 2002 Type ? for help. Commands must be C++ statements. Enclose multiple statements between { }. root [0] Float_t x = 6.7 root [1] cout << x-6.7 << endl; -1.90735e-07 root [2] cout << x << endl; 6.7 root [3] x (Float_t)6.69999980926513672e+00 -- +-----------------------------------------------------------\|/---+ | Christophe DELAERE office: e253 !o o! | | UCL - FYNU phone : 32-(0)10-473234 ! i ! | | chemin du cyclotron, 2 fax : 32-(0)10-452183 `-' | | 1348 Louvain-la-Neuve BELGIUM e-mail: delaere@fynu.ucl.ac.be | +-----------------------------------------------------------------+
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:52 MET