Ele*_*ios 57 ruby numbers decimal
我需要使用小数.在我的程序中,用户需要输入一个带小数的数字来转换该数字.
问题是:如果我尝试将参数转换为数字,我会得到一个没有小数的整数.
# ARGV[0] is: 44.33
size = ARGV[0]
puts size.to_i
# size is: 44
# :(
Run Code Online (Sandbox Code Playgroud)
Tau*_*-if 11
如果您想通过计算获得更准确的答案以避免此类https://www.codecademy.com/en/forum_questions/50fe886f68fc44056f00626c这样的错误,则可以使用转换为小数的示例:
require 'bigdecimal'
require 'bigdecimal/util'
size = ARGV[0]
size = size.to_d
Run Code Online (Sandbox Code Playgroud)
这应该使打印的数字成为小数,但是如果您想使其再次成为浮点数,只需再次将其置于to_f
size=size.to_f
puts size
Run Code Online (Sandbox Code Playgroud)
您也可以使用十进制类
a = '2.45'
Decimal(a) # => 2.45
Run Code Online (Sandbox Code Playgroud)
更新:
使用bigdecimal作为@ bigtex777提到:
来源:http://ruby-doc.org/stdlib-2.2.2/libdoc/bigdecimal/rdoc/BigDecimal.html