Как преобразовать "$ 10.80"
в десятичный? С помощью регулярного выражения?Ruby Convert String to Decimal
ответ
Это может быть не самый лучший способ сделать это, но вот что-то, что работает:
"$ 10.80".match(/[0-9|\.]+/)[0].to_f
Хорошее решение. Можно просто использовать это, чтобы извлечь десятичное значение из любой строки. Спасибо – TonyTakeshi
Этот soluiton соответствует любому числу с плавающей запятой (в том числе, например, «$ 0,89») и сохраняет точность:
require 'bigdecimal'
s = "$ 10.80"
puts BigDecimal.new(s.match(/\d*\.?\d+/)[0]).to_s('F') # 10.8
s = "$ 10.80"
BigDecimal.new s.match(/(\d+\.\d+)/)[1]
Возвращает ваше значение как BigDecimal для сохранения точности.
код, который может быть проще для понимания регулярных выражений неграмотных:
"$ 10.80".split(' ')[1].to_f
вы даже можете использовать метод расщепления.
"$ 10.80".split(' ')[1].to_f
Есть уже несколько решений, но я хотел бы добавить
>> "$ 10.80"[/[\d\.]+/].to_f #=> 10.8
Если вы знаете, что он всегда имеет $
в начале, а затем просто удалить, что и простой to_f
будет делать ,
"$ 10,00" [1 ..- 1] .to_f
Это. Почему вы усложнили проблему больше, чем необходимо? –
- 1. Ruby on Rails Migration Convert from String To Decimal
- 2. Hibernate аннотация String convert to Decimal
- 3. Ruby: Convert String to Float
- 4. Ruby Convert String to File
- 5. Ruby: Convert Constant to String
- 6. Ruby: convert string to date
- 7. Ruby Convert String to Hash
- 8. Convert String [] [] to String []
- 9. Python Decimal to String
- 10. Convert Ruby String gsub! to javascript string replace method
- 11. Convert String to Hash
- 12. convert string [] to int []
- 13. convert string to boolean
- 14. Convert System.Array to string []
- 15. convert byte [] to string
- 16. Convert JsDefined to String
- 17. convert string to cultureinfo
- 18. Convert StringWriter to string []
- 19. convert String to WebElement
- 20. convert string to date
- 21. Convert Byte To String
- 22. convert String to Dataset
- 23. Convert String to Drawable
- 24. Convert Object [,] to String
- 25. Convert UIBezierPath to String
- 26. Convert Node to String
- 27. CONVERT decimal DAYS to TIME format
- 28. convert void * hex to decimal int
- 29. Jinja2 convert float to decimal mid calc
- 30. Convert 3 Hex (byte) to Decimal
Что вы имеете в виду под "десятичной"? Произвольная точность с плавающей запятой? – Jan