On Wed, 11 Nov 2009 16:35:23 -0800 (PST)
cet cet <xni...@yahoo.com> wrote:
> After i updated my system my previously working gtk+ application
> start to print wrong result.The problem is atof() i used in the
> program.The code is working as expected in a standart c console
> version.(Program reads some datas from file and make some
> calculations)The code i used is;
> 
> suppose that at line 62 the file have data;
> 10   5  15 B   15.031103
> 
> the code;
> 
> gchar *temp,cm[11];
> gfloat m;
> gint l00;
> .....
> 
> while(!feof(in)){
> fgets(temp,30,in);
> 
> 
> 
> for(i=0;i<10;i++) cm[i]=temp[i+15];
> 
> cm[10]='\0';
> if(l==62) g_print("mass=%s\n",cm);/*prints 15.031103  */
> 
> m=atof(cm);
> 
> if(l==62) g_print("mass=%f\n",m);/*prints 15,000000 notice that not
> 15.000000 it prints with the comma 15,000000 */
> l++;
> }
> 
> I also tried sscanf(cm,"%f",&m) and m=strtof(cm,NULL);
> always gives 15,000000 When i try exactly the same code in a standart
> c program it is working as expected.

The radix is locale dependent.  You will need to set a C locale.

Chris
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to