i wonder how avoid getting zeros printf when printing undefined value or empty string perl:
$ perl -le 'printf "%.4f", undef' 0.0000 this little c program tells me that's way printf works.
#include <stdio.h> main() { printf ("%.4f\n", ""); } is there anyway within printf avoid printing zeros?
the c program tells nothing. has undefined behavior, because "" not of correct type format string.
you're getting floating-point output because that's asked using "%.4f".
in perl, if print using printf "%.4f", ..., treat argument real number , format accordingly. special value undef apparently treated 0.0 in context. if want print empty string (or, equivalently, print nothing) undef argument, need use different format string -- or not call printf @ all.
if (defined $foo) { printf "%.4f", $foo; } note checks whether $foo defined, not whether it's numeric. if value of $foo reference, example, you'll meaningless numeric representation of memory address.
Comments
Post a Comment