Version: 1.5.0 (using KDE 3.5.2, Gentoo) Compiler: gcc version 3.4.6 (Gentoo 3.4.6-r1, ssp-3.4.5-1.0, pie-8.7.9) OS: Linux (i686) release 2.6.16-gentoo-r4 Whenever I enter some number bigger than (2^31)-1 it is displayed as -2^31. This happens on x86-32 and ppc32.
Already fixed for 1.5.1.
I can not confirm that. :-( I have just upgraded to KDE 3.5.3 and KOffice 1.5.1 and get similar results. In fact it is possible to enter numbers slightly bigger than (2^31)-1. But not very far. F.ex. 3000000000 still show the negative number. Results from formulars can be bigger than that. But manually inputed fields are shown wrong. Am I doing sth. wrong or is this bug perhaps not yet solved? Thank you.
Can anybody confirm this problem?
The issue fixed in 1.5.1 was a similar one. My bad. You're right, this is a valid problem.
*** Bug 131163 has been marked as a duplicate of this bug. ***
*** Bug 72890 has been marked as a duplicate of this bug. ***
*** Bug 135812 has been marked as a duplicate of this bug. ***
I can confirm, that this bug still exists in KSpread 1.6.1. Here, large numbers are shown as -2^31 in the grid widget, but correctly in the line edit below the toolbars. As far as I can see, it happens both if you enter a large number or load a CSV file containing cells with large numbers. Therefore, bug 137569 is most likely a duplicate.
SVN commit 628769 by nikolaus: Formula Use 'long' in all integer related places. CCBUG: 127599 M +2 -2 formula.cc M +1 -1 formula.h M +2 -2 kspread_value.cc --- branches/koffice/1.6/koffice/kspread/formula.cc #628768:628769 @@ -240,9 +240,9 @@ // FIXME check also for i18n version } -int Token::asInteger() const +long Token::asInteger() const { - if( isInteger() ) return m_text.toInt(); + if( isInteger() ) return m_text.toLong(); else return 0; } --- branches/koffice/1.6/koffice/kspread/formula.h #628768:628769 @@ -159,7 +159,7 @@ * Returns integer value for an integer token. * For any other type of token, returns 0. */ - int asInteger() const; + long asInteger() const; /** * Returns floating-point value for a floating-point token. --- branches/koffice/1.6/koffice/kspread/kspread_value.cc #628768:628769 @@ -478,7 +478,7 @@ result = d->i; if( type() == Value::Float ) - result = static_cast<int>(d->f); + result = static_cast<long>(d->f); return result; } @@ -853,7 +853,7 @@ if( ( t1 == Integer ) && ( t2 == Integer ) ) { long p = asInteger(); - long q = v.asInteger(); + long q = v.asInteger(); return ( p == q ) ? 0 : ( p < q ) ? -1 : 1; }
This is still an issue in 1.6.2.
still exists in Kspread 1.6.2
Problem still occurs in KSpread 1.6.3
Problem still occurs in KSpread 2.0-alpha-5 (KDE 4.0 Beta 4).
Created attachment 22405 [details] Screenshot of bug Screenshot of the bug taken with KSpread 2.0 alpha 5 - note different values between formula bar and cell itself.
This is fixed now.