У меня есть номер, хранящийся в виде укуса, например. "2,65424.00"
Есть ли способ конвертировать его в плавающий номер 2,65424.00
и сохранить формат?Строка Ruby для номера сохраняется формат
ответ
Попробуйте преобразовать ваш строковый объект с помощью string.to_i
для целого числа или string.to_f
для поплавка.
Хм вы правы .. но не помогите OP ... :) –
Нет, внутреннее представление не может быть изменено следующим образом. Единственный способ подойти к этому, чтобы написать метод to_s
для Float
и Fixnum
. Например:
class Float
def to_s
# your formatting: sprintf("...", self)
end
end
Поскольку вы хотите сделать получить те же представления о Fixnum можно затем преобразовать Fixnum в Float, а затем основывать to_s
метод на to_s
метода Float.
class Fixnum
def to_s
self.to_f.to_s
end
end
Таким образом, вы получите представление, через вызова to_s
на вашем Float
265424.to_s
=> "2,65424.00"
, или при использовании интерполяции:
"When you write it like this #{265424}"
=> "When you write it like this 2,65424.00"
На мой взгляд, это правильный подход , потому что вам нужно индивидуальное представление ваших номеров. Это хорошо, но тогда это индивидуальное представление должно быть реализовано на уровне строк, потому что, если вы хотите хорошо отобразить что-то через формирование, для этого нужны строки.
Также может оказаться сомнительным использование этого подхода к подделке обезьян, это зависит от того, хотите ли вы предоставить библиотеку и т. Д. Может быть, было бы хорошо, если бы вы просто разработали специальный формат, который принимает номера и печатает их в формате.
You can not save float value with ',' as a delimiter in mysql
Однако вы можете сделать что-то вроде следующего
"2,65424.00".gsub(',', '').to_f # 265424.0
Thats true. '% .2f'% '2,65424.00'.delete (', '). To_f Вы также можете использовать это. –
- 1. Формат Строка как валюта с Ruby/Sinatra
- 2. Номера сканирования как строка
- 3. Формат номера для Angular JS
- 4. Формат пользовательского номера для NULL
- 5. Формат номера для полей ввода
- 6. Формат фиксированного номера в ANTLR
- 7. формат номера через .toString()
- 8. Формат мобильного номера
- 9. Простой формат номера С
- 10. Формат номера CSS
- 11. Chart.js формат номера
- 12. Формат номера сборки TFS
- 13. Строка Формат не работает
- 14. Формат номера HTML POST
- 15. Формат номера телефона
- 16. Формат контактного номера Android
- 17. как передать формат номера C++ в формат номера C#?
- 18. Формат номера в Jtable
- 19. Формат номера участка октавы
- 20. Строка Формат неправильного формата для%
- 21. Coldfusion формат номера
- 22. Изменить формат номера
- 23. Формат номера в PHP
- 24. Формат номера в VBA
- 25. Cobol формат номера
- 26. Формат номера в oracle
- 27. Формат номера ячейки Excel
- 28. Yii2: Формат номера
- 29. Неверный формат номера модели
- 30. Сделать формат номера?
То есть необычный формат числа. Вопрос также немного запутанный - не могли бы вы рассказать, возможно, просто объясните, откуда ваши данные, и где вы хотите его отобразить? Если вы хотите использовать это значение как число, ожидаете ли вы выполнить какие-либо математические операции над ним (в этом случае он не может отображаться точно так же). Номера Ruby не содержат сохраненный формат, но есть много способов отображения их форматирования. Но также очень легко отобразить строку без кавычек, если это все, что вам нужно сделать. Просто 'puts s' (где' '' ваша строка). –
№ '2,65424.00' не является допустимым выражением Ruby. Другими словами, такого объекта Ruby не существует. Следовательно, нет способа преобразовать строку в такую вещь. – sawa