in reply to Spreadsheet::Read module is rounding the decimals in XLSX file
G'day char_perl,
Welcome to the Monastery.
Use the sprintf function to specify the precision you want:
#!/usr/bin/env perl -l use strict; use warnings; my $value = 0.9888; print '"%.2f" --> ', sprintf '%.2f', $value; print '"%.4f" --> ', sprintf '%.4f', $value; print '"%.8f" --> ', sprintf '%.8f', $value;
Output:
$ pm_1131769_output_precision.pl "%.2f" --> 0.99 "%.4f" --> 0.9888 "%.8f" --> 0.98880000
Also note that there is a printf function, but this has a number of gotchas. They're described in the documentation; although, you may just want to follow the advice on the last line:
"Don't fall into the trap of using a printf when a simple print would do. The print is more efficient and less error prone."
-- Ken
|
|---|