Date: Tue, 30 Mar 2010 18:39:22 +0300 From: Alexander Motin <mav@FreeBSD.org> To: "M. Warner Losh" <imp@bsdimp.com> Cc: freebsd-arm@FreeBSD.org Subject: Re: printf(long double) Message-ID: <4BB21B2A.6090209@FreeBSD.org> In-Reply-To: <20100330.090525.956847443318914833.imp@bsdimp.com> References: <4BB1C5C9.8000402@FreeBSD.org> <20100330.090525.956847443318914833.imp@bsdimp.com>
index | next in thread | previous in thread | raw e-mail
M. Warner Losh wrote:
> In message: <4BB1C5C9.8000402@FreeBSD.org>
> Alexander Motin <mav@FreeBSD.org> writes:
> : Playing with SheevaPlug (Marvell 88F6281 rev A0) with fresh 9-CURRENT
> : I've found that many system statistics utilities are lying, showing
> : number few times smaller then expected. After some investigation I've
> : found that the problem possibly goes from different meaning of (long
> : double) type for compiler and printf() code.
>
> Yes. That's possible. Your code has some mis-match between printf
> args, which most likely is causing problems.
OK, it was wrong indeed. But that is not the reason, but coincidence.
Here is fixed code:
#include <stdio.h>
int
main (void)
{
printf("%Lf %f\n", (long double)14.5, (double)14.5);
return(0);
}
It compiles cleanly on both arm and amd64, but still not working on arm:
%./a.out
6.500000 14.500000
--
Alexander Motin
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4BB21B2A.6090209>
