[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdeedu/kmplot/kmplot
From:       David Saxton <david () bluehaze ! org>
Date:       2006-03-31 20:18:05
Message-ID: 1143836285.361335.18463.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 525104 by saxton:

Fix bug whereby small numbers were stored as strings using "e", e.g. "1.22e-6".
As "e" is a constant, this was parsed as "(1.22*e)-6". Now, numbers are stored
as e.g. "1.22*10^-6".


 M  +8 -8      View.cpp  
 M  +10 -0     parser.cpp  
 M  +7 -0      parser.h  


--- trunk/KDE/kdeedu/kmplot/kmplot/View.cpp #525103:525104
@@ -1521,10 +1521,10 @@
 			; // do nothing
 	}
 	
-	Settings::setXMin( QString::number( newCoords.left(), 'g' ) );
-	Settings::setXMax( QString::number( newCoords.right(), 'g' ) );
-	Settings::setYMin( QString::number( newCoords.top(), 'g' ) );
-	Settings::setYMax( QString::number( newCoords.bottom(), 'g' ) );
+	Settings::setXMin( Parser::number( newCoords.left() ) );
+	Settings::setXMax( Parser::number( newCoords.right() ) );
+	Settings::setYMin( Parser::number( newCoords.top() ) );
+	Settings::setYMax( Parser::number( newCoords.bottom() ) );
 
 	Settings::setXRange(4); //custom x-range
 	Settings::setYRange(4); //custom y-range
@@ -1544,10 +1544,10 @@
 	ymin += rdy;
 	ymax += rdy;
 	
-	Settings::setXMin( QString::number( xmin, 'g' ) );
-	Settings::setXMax( QString::number( xmax, 'g' ) );
-	Settings::setYMin( QString::number( ymin, 'g' ) );
-	Settings::setYMax( QString::number( ymax, 'g' ) );
+	Settings::setXMin( Parser::number( xmin ) );
+	Settings::setXMax( Parser::number( xmax ) );
+	Settings::setYMin( Parser::number( ymin ) );
+	Settings::setYMax( Parser::number( ymax ) );
 	Settings::setXRange(4); //custom x-range
 	Settings::setYRange(4); //custom y-range
 	
--- trunk/KDE/kdeedu/kmplot/kmplot/parser.cpp #525103:525104
@@ -1095,6 +1095,16 @@
 {
 	return m_ufkt.contains( id ) ? m_ufkt[id] : 0;
 }
+
+
+// static
+QString Parser::number( double value )
+{
+	QString str = QString::number( value, 'g', 6 );
+	str.replace( 'e', "*10^" );
+// 	kDebug() << "returning str="<<str<<endl;
+	return str;
+}
 //END class Parser
 
 
--- trunk/KDE/kdeedu/kmplot/kmplot/parser.h #525103:525104
@@ -264,6 +264,13 @@
 	Parser();
 	~Parser();
 	
+	/**
+	 * @return A string that is safe to use as a number in a string to be
+	 * parsed. This is needed as e.g. "1.2e-3" is not allowed (e is a
+	 * constant) - so cannot use the QString::number.
+	 */
+	static QString number( double value );
+	
 	/// Returns the result of a calculation
 	double fkt(Ufkt *it, double const x);
 	double fkt(uint id, double const x);
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic