Hello.
I am experimenting some troubles with float and fraction numbers.
Two problems :
1) Any number containing 10 digits and over cannot be converted in a float. Ex : 1234567890 asFloat "210.0" (similar problem for 0.1234567890) Consequence: arithmetic calculations using #asFloat may be erroneous Solution: at least, a notification when the number to be converted in float contains too much digits
2) Correction of the approximate value (float) of a fraction (see Fraction>>#asFloat) Ex: (637629679868427784505109440202397271654068317554218172555028 / 16543612251060553497428173841399257071316242218017578125) asFloat. "67720.5333333333" "ERRONEOUS!" (637629679868427784505109440202397271654068317554218172555028 // 16543612251060553497428173841399257071316242218017578125) asFloat. "38542.0" Consequence: impossible to approximate some fractions Solution: correction of Fraction>>#asFloat ?
Guillaume Grondin
PS : I use win32 VM (3.7.1) and 3.9b-7033 image.
Am 22.06.2006 um 19:06 schrieb Guillaume GRONDIN:
Hello.
I am experimenting some troubles with float and fraction numbers.
Two problems :
- Any number containing 10 digits and over cannot be converted in
a float. Ex : 1234567890 asFloat "210.0" (similar problem for 0.1234567890) Consequence: arithmetic calculations using #asFloat may be erroneous Solution: at least, a notification when the number to be converted in float contains too much digits
- Correction of the approximate value (float) of a fraction (see
Fraction>>#asFloat) Ex: (637629679868427784505109440202397271654068317554218172555028 / 16543612251060553497428173841399257071316242218017578125) asFloat. "67720.5333333333" "ERRONEOUS!" (637629679868427784505109440202397271654068317554218172555028 // 16543612251060553497428173841399257071316242218017578125) asFloat. "38542.0" Consequence: impossible to approximate some fractions Solution: correction of Fraction>>#asFloat ?
Guillaume Grondin
PS : I use win32 VM (3.7.1) and 3.9b-7033 image.
Both worked fine in 3.8.
- Bert -
On 6/22/06, Guillaume GRONDIN grondin@ensm-douai.fr wrote:
- Any number containing 10 digits and over cannot be converted in a float.
Ex : 1234567890 asFloat "210.0" (similar problem for 0.1234567890)
Works for me, with a 3.8 on a Mac OS X VM. I don't know why you're having troubles. What does your TestRunner do on a FloatTest?
Consequence: arithmetic calculations using #asFloat may be erroneous
Calculations using floating point approximations may be erroneous for many, many reasons. But this shouldn't be one of them.
(637629679868427784505109440202397271654068317554218172555028 / 16543612251060553497428173841399257071316242218017578125) asFloat. "67720.5333333333" "ERRONEOUS!"
Again, I'm getting what seems to be the correct answer; not at all what you're seeing.
PS : I use win32 VM (3.7.1) and 3.9b-7033 image.
Try with a "fresh" 3.8 or 3.9 image and see whether you get the same things. Good luck with it!
--Tom Phoenix
Indeed, my image was just broken. Thx
Guillaume
Tom Phoenix wrote:
On 6/22/06, Guillaume GRONDIN grondin@ensm-douai.fr wrote:
- Any number containing 10 digits and over cannot be converted in a
float. Ex : 1234567890 asFloat "210.0" (similar problem for 0.1234567890)
Works for me, with a 3.8 on a Mac OS X VM. I don't know why you're having troubles. What does your TestRunner do on a FloatTest?
Consequence: arithmetic calculations using #asFloat may be erroneous
Calculations using floating point approximations may be erroneous for many, many reasons. But this shouldn't be one of them.
(637629679868427784505109440202397271654068317554218172555028 / 16543612251060553497428173841399257071316242218017578125) asFloat. "67720.5333333333" "ERRONEOUS!"
Again, I'm getting what seems to be the correct answer; not at all what you're seeing.
PS : I use win32 VM (3.7.1) and 3.9b-7033 image.
Try with a "fresh" 3.8 or 3.9 image and see whether you get the same things. Good luck with it!
--Tom Phoenix
squeak-dev@lists.squeakfoundation.org