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

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Olivier Andrieu <andrieu@i...>
Subject: Re: [Caml-list] floating point input/conversion
 > Stefan Ratschan [Fri, 22 Oct 2004]:
 > For the functions float_of_string and read_float the OCaml manual is
 > very vague: "Convert the given string to a float".
 > 
 > In fact, this sentence is wrong. For example, the number 0.1 does not
 > have a floating point representation, only approximations to it.
 > 
 > So what is the exact specification of these functions? Which number is
 > taken if the given string does not have a floating point representation?
 > The nearest one? The nearest one up to 2ulps? 

float_of_string basically just calls strtod() from the C library (see
caml_float_of_string in byterun/floats.c). strtod's behaviour is
specified in the C standard, which says:

« the result is either the nearest representable value, or the larger
or smaller representable value immediately adjacent to the nearest
representable value, chosen in an implementation-defined manner. »

So I guess the answer is 'it depends'.

> Is the current rounding mode taken into account?

Probably not because strtod() is supposed to give the same result than
a float constant in the source code.

-- 
   Olivier

-------------------
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