IT박스

루비에서 문자열을 10 진수로 변환

itboxs 2020. 12. 24. 23:28
반응형

루비에서 문자열을 10 진수로 변환


소수로 작업해야합니다. 내 프로그램에서 사용자는 해당 숫자를 변환하기 위해 소수로 숫자를 입력해야합니다.

문제는 인수를 숫자로 변환하려고하면 소수가없는 정수가됩니다.

# ARGV[0] is: 44.33

size = ARGV[0]

puts size.to_i
# size is: 44
# :(

을 호출 to_i하면 정수를 얻습니다.

을 호출 to_f하면 플로트를 얻을 수 있습니다.

더 많은 문자열 변환 방법을 보려면 여기를보십시오 .


https://www.codecademy.com/en/forum_questions/50fe886f68fc44056f00626c 와 같은 버그를 피하기 위해 계산으로 더 정확한 답을 원한다면 십진수로 변환을 사용할 수 있습니다.

require 'bigdecimal'
require 'bigdecimal/util'

size = ARGV[0]
size = size.to_d

이렇게하면 인쇄 된 숫자가 10 진수가되지만 다시 float로 만들려면이 to_f를 다시 넣으십시오.

size=size.to_f

puts size

또한 decimal 클래스를 사용할 수도 있습니다.

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

최신 정보:

@ bigtex777이 언급 한대로 bigdecimal을 사용합니다.

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


대문자 변환 방법은 잘 알려진 Ruby 관용구입니다. Advi Grimm의 멋진 게시물을 참조하세요.

Integer("641339524823408659")
=> 641339524823408659

참조 URL : https://stackoverflow.com/questions/9956766/convert-string-to-decimal-number-in-ruby

반응형