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: <%-{-{-{-<
In reply to Re^3: Why do I get random numbers?
by AnomalousMonk
in thread Why do I get random numbers?
by Cleggy
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |