将string转换为ruby中的十进制数字
我需要使用小数。 在我的程序中,用户需要input小数来转换该数字。
问题是:如果我尝试将参数转换为数字,我会得到一个不带小数的整数。
# ARGV[0] is: 44.33 size = ARGV[0] puts size.to_i # size is: 44 # :(
你打给to_i
,你得到整数。
尝试调用to_f
,你应该得到一个浮点数。
有关更多string转换方法, 请看这里 。
你也可以使用它的小数类
a = '2.45' Decimal(a) 2.45
更新:
使用bigdecimal作为@ bigtex777提到:
来源: http : //ruby-doc.org/stdlib-2.2.2/libdoc/bigdecimal/rdoc/BigDecimal.html
大写的转换方法是一个成熟的Ruby成语。 从Advi Grimm看这个伟大的职位
Integer("641339524823408659") => 641339524823408659
你也可以使用sprintf来获得精确的小数点数:
a = 2.45 p sprintf "%.6f", a #=> "2.450000"