Version française
Home     About     Download     Resources     Contact us    
Browse thread
[Caml-list] int/float_of_string
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Christophe TROESTLER <debian00@t...>
Subject: [Caml-list] int/float_of_string
Hi,

I noticed that there are some disparities in the way string are
converted to int/float :

        Objective Caml version 3.06+36 (2003-06-19)

# int_of_string "34\000xx";;
- : int = 34
# float_of_string "34\000xx";;
Exception: Failure "float_of_string".

Is this intentional?  I suppose it is not and float_of_string does the
right thing.

On a related note, it seems that the only way to decode an int/float
within a string is to create a new string containing the substring.
Moreover one must know the length of the number in advance.  Wouldn't
it be useful to have primitives like:

int_of_string_at : string -> int -> (int, int)
float_of_string_at : string -> int -> (int, float)

with usage like 

let (pos_after_the_number, decoded_number) = float_of_string_at s start

?  (I know such thing can be done with Scanf but I believe such
primitives can simplify and speed up¹ Scanf with no slowdown on
int_of_string / float_of_string.)

Cheers,
ChriS


---
¹ For what simple minded benchs worth, int_of_string can be as much as
1000% faster than Scanf.

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners