Decimal in for loop?

N

Nathan Oyama

Hi, I have a quick question: How can I increase a valuable by a certain
decimal (not an integer) in a for loop?

For example, in C,

for( i = 0; i < 0.5; i += 0.1 )
printf( "%f ", i );

the code above returns

0.0 0.1 0.2 0.3 0.4

How can I write this in Ruby?

Thanks,
Nathan

ps I looked in several Ruby tutorials, but couldn't find any example
using a decimal. . . Should I use another loop syntax like 'loop' or
'while/until'?
 
F

Fleck Jean-Julien

Hello Nathan,
the code above returns

0.0 0.1 0.2 0.3 0.4

How can I write this in Ruby?

Use the step method for all descendant of Numeric class:
0.0
0.1
0.2
0.3
0.4
0.5
=3D> 00.1
0.2
0.3
0.4
0.5
=3D> 0.1

Cheers,

--=20
JJ Fleck
PCSI1 Lyc=E9e Kl=E9ber
 
N

Nathan Oyama

Thanks a lot for the quick responding, Fleck, your suggestion works! ;-)
-Nathan
 
A

Aaron Patterson

Hi, I have a quick question: How can I increase a valuable by a certain
decimal (not an integer) in a for loop?

For example, in C,

for( i = 0; i < 0.5; i += 0.1 )
printf( "%f ", i );

the code above returns

0.0 0.1 0.2 0.3 0.4

How can I write this in Ruby?

Thanks,
Nathan

ps I looked in several Ruby tutorials, but couldn't find any example
using a decimal. . . Should I use another loop syntax like 'loop' or
'while/until'?

while or until would both work. I can think of three ways off the top
of my head:


(0..0.4).step(0.1) do |f|
p f
end

x = 0
while x < 0.5 do
p x
x += 0.1
end

x = 0
until x > 0.4
p x
x += 0.1
end

Hope that helps!
 
N

Nathan Oyama

while or until would both work.
x = 0
while x < 0.5 do
p x
x += 0.1
end

x = 0
until x > 0.4
p x
x += 0.1
end

Yes, it is, but it looks badly long. . . As I program in Ruby, I want to
write a code as clearly as possible.

Anyway, thanks a lot for your help, Aaron. Your suggestion makes another
question, so please see the new thread 'Ruby editing style rules and
recommendation?'

Thanks in advance,
Nathan
 
S

Seebs

Hi, I have a quick question: How can I increase a valuable by a certain
decimal (not an integer) in a for loop?

For example, in C,

for( i = 0; i < 0.5; i += 0.1 )
printf( "%f ", i );

the code above returns

0.0 0.1 0.2 0.3 0.4

No, it doesn't.

Nor does it print that (remember, "for" loops have no "return value" in C).

It might print "0.000000 0.100000 ...". :)
ps I looked in several Ruby tutorials, but couldn't find any example
using a decimal. . . Should I use another loop syntax like 'loop' or
'while/until'?

Usually, this is not the right way to do it, but you might be able to
do something like this using one of the upto-like methods, I think
it might be called "step".

-s
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,787
Messages
2,569,630
Members
45,335
Latest member
Tommiesal

Latest Threads

Top