in reply to Re^2: Why do I get random numbers?
in thread Why do I get random numbers?
works for me in ... perl 5, version 20 ... Doesn't throw any warnings.... %.{$var}f doesn't do any trick except to produce[a] ... warning.
I'm surprised to read that it works in 5.20. I don't see any mention of a new format specifier in the latest sprintf docs. The best I can test in ATM is 5.14:
c:\@Work\Perl\monks>perl -wMstrict -le "print 'perl version: ', $]; ;; my $p = 30; my $n = 1.111111111111111111111111111111; ;; printf qq{%0.{$p}f}, $n; " perl version: 5.014004 Invalid conversion in printf: "%0.{" at -e line 1. %0.{30}f
... I was surprised that the data changed ...
As to this, I'm sure that, having now read the docs, you realize that IEEE-754 floating point representation (or any other finite representation) is only an approximation that may sometimes happen to be exact, and that it handles base-2 relative-prime fractions no better than base-10 handles 1/3.
Give a man a fish: <%-{-{-{-<
|
|---|