hello I have this piece of code written to analyse the cross section and
give the reinforcement for a concrete beam…
#initializing some constants… pls ignore this part!
M = 340000000
h = 630
b = 300
fck = 40
d = b-30
This is where I am having my problem
K = ((M) / (b*(d**2)*fck)).to_f
I have defined other constants… but didn’t wanna crowd the question
z = (d/2) * (1 + Math.sqrt(1-2*(K/kappa)))
area_steel = (M) / (fyd*z)
puts “Area of Steel Required " + area_steel.to_s + " sq. mm”
end of code
thanks for your help cheers!
Mahadev I. wrote:
This is where I am having my problem
K = ((M) / (b*(d**2)*fck)).to_f
K = M.to_f / (b*(d**2)*fck)
In your code, you’re dividing an integer by an integer, so Ruby makes it
an integer division. If you make either the numerator or denominator a
float, you’ll get a float result.
–
Alex
Thanks really appreciate it… 
Alex Y. wrote:
Mahadev I. wrote:
This is where I am having my problem
K = ((M) / (b*(d**2)*fck)).to_f
K = M.to_f / (b*(d**2)*fck)
In your code, you’re dividing an integer by an integer, so Ruby makes it
an integer division. If you make either the numerator or denominator a
float, you’ll get a float result.
But don’t use floats for math, because of the imprecision inherent in
the format. For math, stick to integers or BigDecimal.
–
Alex
Best,
Marnen Laibow-Koser
http://www.marnen.org
[email protected]