Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Re: Re: (s)printf and rounding woes

by nevyn (Monk)
on Nov 05, 2003 at 11:57 UTC ( [id://304701]=note: print w/replies, xml ) Need Help??


in reply to Re: (s)printf and rounding woes
in thread (s)printf and rounding woes

Now here is something a little bit off topic, but interesting. If you do this in c:
float x = 147.2; printf("%d", x * 100);
It produces -167772160, which is ridiculous, as c tries to interprete that piece of memory as integer, as you required.

Well gcc has had static format checking included for only at least 10 years. Which would give a warning on the above, and so make that mistake practically impossible. In fact there are solutions for printing arbitrary objects via. printf like mechanisms in C. Which might be nice in perl (if XS wasn't so ick I'd be happier to look at doing it).

In fact, to be somewhat on topic, it can sometimes be pretty annoying that perl doesn't give any warnings if you do...

my $i = 1; my $j = 2.3; printf("%f %d\n", $i, $j);

...although more annoying and probably easier to fix would be to have all the normal printf() POSIX extensions like "%'d" work.

--
James Antill

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://304701]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others learning in the Monastery: (5)
As of 2024-04-19 07:26 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found