Hello,

I have a problem with valgrind since I did convert
my program to use long double instead double on
critical points. Here is an example code:

#include <stdlib.h>
#include <stdio.h>

int main(int argc,char **argv){
   long double x;
   char *ende;
   x=strtold(argv[1],&ende);
   printf("%.20LE",x);
   return 0;
}

Using gcc, I get the result

./test 0.345
3.44999999999999999999E-01

but

valgrind ./test 0.345
==2403== Memcheck, a memory error detector
==2403== Copyright (C) 2002-2009, and GNU GPL'd, by Julian Seward et al.
==2403== Using Valgrind-3.5.0 and LibVEX; rerun with -h for copyright info
==2403== Command: ./test 0.345
==2403==
3.44999999999999973355E-01

Due to that precision loss, I cannot further use valgrind. Some numeric
integals etc. heavily depend on numeric precision...

Any hints? Anyone else?

Joerg

------------------------------------------------------------------------------
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
Valgrind-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/valgrind-users

Reply via email to