in reply to Re^2: Why do I get random numbers?
in thread Why do I get random numbers?

... %.{$var}f doesn't do any trick except to produce [a] ... warning.
works for me in ... perl 5, version 20 ... Doesn't throw any warnings.

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:  <%-{-{-{-<