[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Floats and %d
- From: Roberto Ierusalimschy <roberto@...>
- Date: Thu, 16 Jul 2015 09:05:50 -0300
> On Tue, Jul 14, 2015 at 9:20 PM, Parke <parke.nexus@gmail.com> wrote:
> > On Tue, Jul 14, 2015 at 5:58 PM, Rena <hyperhacker@gmail.com> wrote:
> >> This is something I've been stubbing my toe on a lot lately and it's
> >> rather annoying:
> >>
> >> Lua 5.3.1 Copyright (C) 1994-2015 Lua.org, PUC-Rio
> >> ; print(string.format('%d', 1.1))
> >
> >> In previous versions - and in C - it would just silently truncate the
> >> number (drop the fractional part).
> >
> > In C? Really? What compiler?
> >
>
> Maybe it was only the one in my imagination... :)
Any correct C compiler will truncate as you said (towards zero), when
it converts a float to an integer. 'printf' is an exception, because
it is a vararg function and, therefore, without type checking. (With
no type checking, the compiler does not know it has to convert.)
-- Roberto