Convert string to decimal number in ruby

后端 未结 4 995
一生所求
一生所求 2021-02-02 05:28

I need to work with decimals. In my program, the user need to put a number with decimals to convert that number.

The problem is: If I try to convert the argument into a

相关标签:
4条回答
  • 2021-02-02 05:44

    If you want more accurate answer with the calculation to avoid bug like this https://www.codecademy.com/en/forum_questions/50fe886f68fc44056f00626c you can use conversion to decimal example :

    require 'bigdecimal'
    require 'bigdecimal/util'
    
    size = ARGV[0]
    size = size.to_d
    

    this should make the printed number become decimal but if you want to make it as float again just put this to_f again

    size=size.to_f
    
    puts size
    
    0 讨论(0)
  • 2021-02-02 05:55

    You call to_i, you get integer.

    Try calling to_f, you should get a float.

    For more string conversion methods, look here.

    0 讨论(0)
  • 2021-02-02 05:59

    You also can use the decimal class for it

    a = '2.45'
    Decimal(a) # => 2.45
    

    UPDATE:

    Use bigdecimal as @bigtex777 mentioned:

    source: http://ruby-doc.org/stdlib-2.2.2/libdoc/bigdecimal/rdoc/BigDecimal.html

    0 讨论(0)
  • 2021-02-02 06:01

    Capitalized conversion methods are a well-established Ruby idiom. See this great post from Advi Grimm

    Integer("641339524823408659")
    => 641339524823408659
    
    0 讨论(0)
提交回复
热议问题