From: thiel Date: 2008-11-04T22:58:12+09:00 Subject: Re: [?? Probable Spam] Re: How to print an array with floating point numbers? Hi Josef, Many thanks for your advice. Solving the problem with your suggestion was quite trivial (at last :-) ) I ran into problems because I used a wrong multi dimensional array definition from the book B. Preissig and changed it into : -------------------------------------- def Test.mda(width,height) Array.new(width).map!{ Array.new(height) } end x = Test.mda(6,2) # Some test data x[0][0] = 55.123 x[1][0] = 39.234 x[2][0] = 41.897 x[3][0] = 40.456 x[4][0] = 47.234 x[5][0] = 51.567 x[0][1] = 1 x[1][1] = 2 x[2][1] = 3 x[3][1] = 4 x[4][1] = 5 x[5][1] = 6 # And the testprogram x = x.sort {|v1, v2 | v2 <=> v1} for m in 0 .. 5 if x[m][0] >= x[2][0] then printf("Greater %3.3f\n", x[m][0]) else printf("Smaller %3.3f \n", x[m][0] ) end end puts "Smallest value = #{x[5][0].to_s}" ------------------------------------ And it works fine. Best regards, Thiel Josef 'Jupp' Schugt schreef: >
On Tue, > 04 Nov 2008 11:12:31 +0100, thiel wrote: > >> Can anyone tell me how I can print an array with floating point numbers? > > printf: > > [0.1, 2.3, 4.5, 6.7, 8.9].each { |x| printf("%0.04f\n",x)} > 0.1000 > 2.3000 > 4.5000 > 6.7000 > 8.9000 > > puts and '%': > > [0.1, 2.3, 4.5, 6.7, 8.9].each { |x| puts "%0.04f" % x} > 0.1000 > 2.3000 > 4.5000 > 6.7000 > 8.9000 > > For multidimensional arrays you need to decide in which order you > iterate over the indices. There's more than one convention to do so. > Typical order 1: The inner loop iterates over the first, the next > outermost loop over the second index, and so on. > Typical order 2: The inner loop iterates over the last, the next > outermost loop over the previous index, and so on. > > HTH, > > Josef 'Jupp' Schugt