我试图在Ruby中执行计算。我得到的结果是1589.5833333333333。我想限制逗号后的位数。
结果应始终限制为两位数,如下所示:
1589.58
非常感谢您的帮助。语言是红宝石
答案 0 :(得分:2)
其他选项,但将对象保留为Float:
n = 1589.5833333333333
m = n.truncate(2) #=> 1589.58
h = n.round(1) #=> 1589.6 # for the last zero you need to format the string
还有一个棘手的问题:
k = (n*100).to_i.digits.tap{ |ary| ary.first > 5 ? ary[0] = 5 : ary[0] = 0 }.reverse.join('').to_i/100.0
#=> 1589.55
答案 1 :(得分:0)
对于问题1:
num = 1589.5833333333333
printf('%.2f', num)
=> 1589.58
问题2的四舍五入到第一位:
num = 1589.5833333333333
printf('%.2f', num.round(1))
=> 1589.60
1589.55是一个任意数字,四舍五入通常计算为1589.58。我不知道有没有可以立即使用的Ruby函数。
答案 2 :(得分:0)
非常感谢,我做到了:
def ausgabe(monatsRate, eigenmittel, amrtSatz)
mntRate = monatsRate
egnmtl = eigenmittel
amrt = amrtSatz / 12 enter code here
puts "Monatsrate: CHF #{mntRate.round(2)}"
puts "Eigenmittel: CHF #{egnmtl.round(2)}"
puts "Amortisationssatz: CHF #{amrt.round(2)}"
end
您将如何与我的逻辑合并?您的更好,但我无法合并语法。