Hi. I don't know how formally make this kind of suggestions so excuse me if I'm doing it wrong.
My situation is this: The user's input is a String representing a floating point number, so I want something that converts a String representing a floating point number to a Float. Example: Something like String>>asFloat so '3.14' asFloat returns the Float 3.14.
So my suggesiont is to add a method String>>asFloat. For example:
String>>asFloat
"returns the float number represented by this String. For example '0.01' asFloat will return the Float 0.1e-1. The strings MUST be representing float numbers in the format 9.12345 and not in the format 0.1e-4. TO DO: the conversion when the represented float is in the format: 0.1e-4. "
|x exp point|
x:=0.0. point:=false. (self size) to: 1 by: -1 do: [: i| ((self at: i)=$.) ifTrue: [point:=true] ifFalse: [ point ifTrue: [exp:=self size - i - 1] ifFalse: [exp:=self size - i]. x:=x+(((self at: i)asDigit)*(10 raisedTo: exp)). ]. ]. (self size) to: 1 by: -1 do: [: i| ((self at: i)=$.) ifTrue: [x:=x * (10 raisedTo: (i-(self size)))] ]. ^x
where Character>>asDigit is something like:
Character>>asDigit
"Example : $4 asDigit will return the SmallInteger 4"
^(self asInteger)-($0 asInteger)
Bye