Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Re: Wrong calculations in for loop

by moritz (Cardinal)
on Aug 22, 2012 at 13:10 UTC ( #989026=note: print w/ replies, xml ) Need Help??


in reply to Wrong calculations in for loop

Luckily you can run the script with only very small changes under Perl 6, and it produces the output you expect:

use v6; my $zmax = 60; # Maximum depth in your model my $dz = 0.05; # Grid spacing in z-direction loop (my $i=0; $i <= $zmax; $i = $i+$dz) { say $i; }

produces

... 3.6 3.65 3.7 3.75 ... 59.9 59.95 60

It accomplishes that magic by doing math with rationals (stored as integer numerator and denominator) by default.


Comment on Re: Wrong calculations in for loop
Select or Download Code
Re^2: Wrong calculations in for loop
by Athanasius (Monsignor) on Aug 22, 2012 at 13:22 UTC

    OK, but getting the same result in Perl 5 is almost as easy:

    #! perl use strict; use warnings; my $zmax = 60; # Maximum depth in your model my $dz = 0.05; # Grid spacing in z-direction print +($_ * $dz), "\n" for (0 .. int(($zmax / 0.05) + 0.5));

    :-)

    Athanasius <°(((><contra mundum

      Or even simpler, just change the print to printf

      my $zmax = 60; # Maximum depth in your model my $dz = 0.05; # Grid spacing in z-direction for (my $i=0; $i <= $zmax; $i = $i+$dz) { printf("%.2f\n", $i); }

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://989026]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others cooling their heels in the Monastery: (2)
As of 2014-09-21 16:57 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (172 votes), past polls