## [ENH] String and Character conversion methods

Cancerbero sgurin at montevideo.com.uy
Thu Jul 29 04:49:27 UTC 2004

```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
--
Sebastián Gurin (Cancerbero)
cancerbero_sgxARROBAusers.sourceforge.net
http://www.geocities.com/cancerbero_sgx

Un poco de sabiduría sí es posible; mas en todas las cosas he
hallado esta feliz certidumbre: prefieren bailar sobre los
pies del azar.
--Nietzsche

```