如何获取float的十进制值并将其转换为ruby中的整数?
到目前为止我到目前为止有多远:
number = 12.55
decimal_length = number.to_s.split('.')[1].size #=> 2
decimal = number.divmod(1)[1].round(decimal_length) #=> 0.55
在这里,如何将十进制转换为整数(55),以任何数字作为输入?
答案 0 :(得分:1)
也许我误会了?但是你已经明白了,你只是在做额外的工作。
number = 12.55
number.to_s.split('.')[1].to_i
# => 55
答案 1 :(得分:1)
您可以使用number.to_i
来获取整数。要获取小数值,您可以执行number%1
number.to_i => 12
number%1 => 0.5500000000000007
答案 2 :(得分:0)
发布时间不多但我希望它可能会有所帮助
decimal_length = n.to_s.split(".").last.size # 2
decimal = (n.abs.modulo(1)*10**decimal_length).round # 55