требуют «деньги/банк/база» | |
требуется ‘money/rates_store/memory’ | |
требуется ‘json’ | |
требуется ‘yaml’ | |
класс Деньги | |
Модуль | Банк |
# Выдается при запросе неизвестного формата скорости. | |
класс UnknownRateFormat < StandardError; конец | |
# Класс для помощи в обмене денег между различными валютами. К | |
# по умолчанию класс +Money+ использует объект этого класса (доступен | |
# через +Money#bank+) для обмена валюты. | |
# | |
# По умолчанию +Money::Bank::VariableExchange+ ничего не знает о | |
# коэффициент конверсии. Их нужно указать вручную с помощью +add_rate+, после | |
# с которым можно совершать обмены с +#exchange_with+. | |
# | |
# Курсы валют хранятся в памяти с использованием +Money::RatesStore::Memory+ по умолчанию. | |
# Передать хранилища пользовательских ставок для других типов хранилищ (файл, база данных и т. д.) | |
№ | |
# @пример | |
# банк = Money::Bank::VariableExchange.new | |
# bank.add_rate(«USD», «CAD», 1.24515) | |
# bank.add_rate(«CAD», «USD», 0.803115) | |
# | |
# c1 = Money.new(100_00, «USD») | |
# c2 = Money.new(100_00, «CAD») | |
# | |
# # Обмен 100 долларов США на канадские доллары: | |
# bank. exchange_with(c1, «CAD») #=> #<Дробная часть денег:12451 валюта:CAD> | |
# | |
# # Обмен 100 канадских долларов на доллары США: | |
# bank.exchange_with(c2, «USD») #=> #<Дробная часть денег:8031 валюта:USD> | |
# | |
# # С хранилищем пользовательских курсов обмена | |
# redis_store = MyCustomRedisStore.new (хост: ‘localhost: 6379’) | |
# банк = Money::Bank::VariableExchange.new(redis_store) | |
# # Магазин ставок в Redis | |
# bank. add_rate ‘USD’, ‘CAD’, 0.98 | |
# # Получить рейт от redis | |
# bank.get_rate ‘USD’, ‘CAD’ | |
класс VariableExchange < Base | |
attr_reader : мьютекс | |
# Доступные форматы для импорта/экспорта ставок. | |
RATE_FORMATS = [:json, :ruby, :yaml].freeze | |
SERIALIZER_SEPARATOR = ‘_TO_’.freeze | |
FORMAT_SERIALIZERS = {json: JSON, ruby: Marshal, yaml: YAML}. freeze | |
# Инициализирует новый объект +Money::Bank::VariableExchange+. | |
# По умолчанию используется экземпляр безопасного хранилища в памяти для | |
# хранение курсов валют. | |
# | |
# @param [RateStore] st Хранилище обменных курсов, используемое для сохранения пар обменных курсов. | |
# @yield [n] Необязательный блок для использования при округлении после замены единицы | |
# валюта для другого. См. +Money::bank::base+ | |
def initialize(st = Money::RatesStore::Memory. new, &block) | |
@магазин = ст | |
супер(&блок) | |
конец | |
деф магазин | |
@store.is_a?(строка) ? Object.const_get(@store): @store | |
конец | |
по умолчанию marshal_dump | |
[store.marshal_dump, @rounding_method] | |
конец | |
деф marshal_load(обр) | |
store_info = обр[0] | |
@store = store_info. shift.new(*store_info) | |
@метод_округления = обр[1] | |
конец | |
# Обмен данного объекта +Money+ на новый объект +Money+ в | |
# +к_валюте+. | |
# | |
# @param [Деньги] из | |
# Объект +Money+ для обмена. | |
# @param [Валюта, Строка, Символ] to_currency | |
# Валюта для обмена. | |
# | |
# @yield [n] Необязательный блок для использования при округлении после замены единицы | |
# валюта для другого. | |
# @yieldparam [Float] n Полученный поплавок после обмена одной валюты | |
# для другого. | |
# @yieldreturn [Целое число] | |
# | |
# @return [Деньги] | |
# | |
# @raise +Money::Bank::UnknownRate+, если коэффициент конверсии неизвестен. | |
# | |
# @пример | |
# банк = Money::Bank::VariableExchange.new | |
# bank. add_rate(«USD», «CAD», 1.24515) | |
# bank.add_rate(«CAD», «USD», 0.803115) | |
# | |
# c1 = Money.new(100_00, «USD») | |
# c2 = Money.new(100_00, «CAD») | |
# | |
# # Обмен 100 долларов США на канадские доллары: | |
# bank.exchange_with(c1, «CAD») #=> #<Дробная часть денег:12451 валюта:CAD> | |
# | |
# # Обмен 100 канадских долларов на доллары США: | |
# bank. exchange_with(c2, «USD») #=> #<Дробная часть денег:8031 валюта:USD> | |
def exchange_with(от, to_currency, &block) | |
to_currency = Currency.wrap(to_currency) | |
, если from.currency == to_currency | |
из | |
еще | |
, если курс = get_rate(from.currency, to_currency) | |
дробное = рассчитать_дробное (от, до_валюты) | |
из.dup_with( | |
дробный: обмен(дробный, курс, блок), | |
валюта: to_currency, | |
банк: сам | |
) | |
еще | |
поднять UnknownRate, «Коэффициент конверсии для ‘#{from. currency.iso_code}’ -> ‘#{to_currency}'» неизвестен» | |
конец | |
конец | |
конец | |
def calculate_fractional (от, до_валюты) | |
BigDecimal(от.дробного.до_s) / ( | |
BigDecimal(from.currency.subunit_to_unit.to_s) / | |
BigDecimal(to_currency.subunit_to_unit.to_s) | |
) | |
конец | |
обмен по умолчанию (дробный, курс, блок) | |
ex = дробное * BigDecimal(rate. to_s) | |
, если block_given? | |
Выход | по сравнению с |
Эльзиф @rounding_method | |
@rounding_method.call(ex) | |
еще | |
бывший | |
конец | |
конец | |
# Регистрирует коэффициент конверсии и возвращает его (использует +#set_rate+). | |
# Делегаты +Money::RatesStore::Memory+ | |
# | |
# @param [Currency, String, Symbol] from Валюта для обмена. | |
# @param [Currency, String, Symbol] to Валюта для обмена. | |
# @param [Числовой] rate Курс, используемый при обмене валют. | |
# | |
# @return [Числовой] | |
# | |
# @пример | |
# банк = Money::Bank::VariableExchange.new | |
# bank.add_rate(«USD», «CAD», 1.24515) | |
# bank.add_rate(«CAD», «USD», 0.803115) | |
по определению add_rate(от, до, скорость) | |
set_rate(от, до, скорость) | |
конец | |
# Установить курс для данных валют. | |
# доступ. | |
# Делегаты +Money::RatesStore::Memory+ | |
# | |
# @param [Currency, String, Symbol] from Валюта для обмена. | |
# @param [Currency, String, Symbol] to Валюта для обмена. | |
# @param [Числовой] rate Курс, используемый при обмене валют. | |
# @param [Hash] выбирает хэш Options для установки специальных параметров. Только обратная совместимость. | |
# | |
# @return [Числовой] | |
# | |
# @пример | |
# банк = Money::Bank::VariableExchange. new | |
# bank.set_rate(«USD», «CAD», 1.24515) | |
# bank.set_rate(«CAD», «USD», 0.803115) | |
по определению set_rate (от, до, ставка, опции = {}) | |
store.add_rate(Currency.wrap(from).iso_code, Currency.wrap(to).iso_code, rate) | |
конец | |
# Получить курс для заданных валют. | |
# доступ к данным. | |
# Делегаты +Money::RatesStore::Memory+ | |
# | |
# @param [Currency, String, Symbol] from Валюта для обмена. | |
# @param [Currency, String, Symbol] to Валюта для обмена. | |
# @param [Hash] выбирает хэш Options для установки специальных параметров. Только обратная совместимость. | |
# | |
# @return [Числовой] | |
# | |
# @пример | |
# банк = Money::Bank::VariableExchange.new | |
# bank.set_rate(«USD», «CAD», 1.24515) | |
# bank.set_rate(«CAD», «USD», 0.803115) | |
# | |
# bank. get_rate(«USD», «CAD») #=> 1.24515 | |
# bank.get_rate(«CAD», «USD») #=> 0.803115 | |
по определению get_rate (от, до, опции = {}) | |
store.get_rate(Currency.wrap(from).iso_code, Currency.wrap(to).iso_code) | |
конец | |
# Вернуть известные ставки в виде строки в указанном формате. Если +файл+ | |
# также запишет строку в указанный файл. | |
# Доступные форматы: +:json+, +:ruby+ и +:yaml+. | |
# | |
# @param [Symbol] format Формат запроса для результирующей строки. | |
# @param [String] файл Необязательное расположение файла для записи ставок. | |
# @param [Hash] выбирает хэш Options для установки специальных параметров. Только обратная совместимость. | |
# | |
# @return [Строка] | |
# | |
# @raise +Money::Bank::UnknownRateFormat+, если формат неизвестен. | |
# | |
# @пример | |
# банк = Money::Bank::VariableExchange.new | |
# bank. set_rate(«USD», «CAD», 1.24515) | |
# bank.set_rate(«CAD», «USD», 0.803115) | |
# | |
# s = банк.export_rates(:json) | |
# s #=> «{\»USD_TO_CAD\»:1,24515,\»CAD_TO_USD\»:0,803115}» | |
def export_rates (формат, файл = ноль, опции = {}) | |
поднять Money::Bank::UnknownRateFormat если RATE_FORMATS.include?(format) | |
магазин.транзакция до | |
s = FORMAT_SERIALIZERS[format].dump(rates) | |
, если только файл . nil? | |
File.open(файл, «w») {|f| f.write(s) } | |
конец | |
с | |
конец | |
конец | |
# Это должно быть объявлено устаревшим. | |
по умолчанию | |
store.each_rate.each_with_object({}) делать |(от,до,рейт),хэш| | |
хэш[[от, до].join(SERIALIZER_SEPARATOR)] = скорость | |
конец | |
конец | |
# Загружает ставки, указанные в +s+, учитывая указанный формат. Доступно | |
# форматы: +:json+, +:ruby+ и +:yaml+. | |
# Делегаты +Money::RatesStore::Memory+ | |
# | |
# @param [символ] формат Формат +s+. | |
# @param [String] s Строка ставок. | |
# @param [Hash] выбирает хэш Options для установки специальных параметров. Только обратная совместимость. | |
# | |
# @return [себя] | |
# | |
# @raise +Money::Bank::UnknownRateFormat+, если формат неизвестен. | |
№ | |
# @пример | |
# s = «{\»USD_TO_CAD\»:1,24515,\»CAD_TO_USD\»:0,803115}» | |
# банк = Money::Bank::VariableExchange.new | |
# bank.import_rates(:json, s) | |
# | |
# bank.get_rate(«USD», «CAD») #=> 1.24515 | |
# bank.get_rate(«CAD», «USD») #=> 0.803115 | |
по умолчанию import_rates (формат, с, опции = {}) | |
поднять Money::Bank::UnknownRateFormat если RATE_FORMATS. include?(format) | |
, если формат == :ruby | |
warn ‘[ВНИМАНИЕ] Использование формата :ruby при импорте ставок потенциально небезопасно и ‘ \ | |
‘может привести к удаленному выполнению кода через десериализатор Marshal.load. Рассмотрите возможность использования ‘\ | |
‘безопасные альтернативы, такие как: json и: yaml.’ | |
конец | |
магазин.транзакция до | |
данные = FORMAT_SERIALIZERS[format]. load(s) | |
data.each do |key, rate| | |
от, до = key.split(SERIALIZER_SEPARATOR) | |
store.add_rate от, до, скорость | |
конец | |
конец | |
сам | |
конец | |
конец | |
конец | |
конец |
Конвертировать 1 RB в доллары США (королевские BNB в доллары США)
Конвертировать
/
🔥 Присоединяйтесь к нашему Telegram
Купить Королевский BNB
рб
$
доллар США
$
Доллар США₹
Индийская рупия€
Евро£
Фунт стерлингов$
Австралийский доллар$
Канадский доллар
Конвертировать на Binance
#Охотник за бонусами | Получите их все 💰
Дата | 1 РБ в долларов США | Сдача за 1 РБ | 1 РБ в | Сдача за 1 РБ | Изменение % |
---|
\ Топ криптовалют
Имя | Цена | 24ч% |
---|---|---|
Биткойн Биткойн | 00″> 25 805,00 $ | -0,48% |
Эфириум Эфириум | 1734,25 $ | -1,15% |
Трос USDT | $0,10000 | -0,02% |
БНБ БНБ | 230,03 $ | -2,67% |
USD Монета USDC | 0,9992 $ | +0,03% |
НОВЫЙ [В] КРИПТО?
МЫ ОБЕСПЕЧИМ ВАС!
Основы биткойнов
NFT
Торговля
Инвестирование
Узнать больше
Вторичная стрелка
Популярные конвертации Royal BNB
Королевский BNB на долларов США
1 рубль равен 0 долларов США
долларов США
Королевских BNB до индийских рупий
1 рубль равен 0 ₹
индийских рупий.
Королевский BNB на евро
1 рубль равен 0 евро
евро
Royal BNB на фунтов стерлингов
1 рубль равен 0 фунтам стерлингов 9 фунтам стерлингов1428
Royal BNB в австралийских долларах
1 РБ равен 0 австралийских долларов
австралийских долларов.
Королевский BNB в канадских долларах
1 РБ равен 0 CAD
.
Королевский БНБ | $ Доллар США |
---|---|
1 | 0,000000005969 |
5,00 | 0,00000002984 |
10.00 | 0,00000005969 |
50,00 | 0,0000002984 |
100,00 | 0,0000005969 |
250,00 | 0,000001492 |
500,00 | 0,000002984 |
1 000,00 | 0,000005969 |
$ Доллар США | Королевский БНБ |
---|---|
1 | 167 532 249,96 |
5,00 | 837 661 249,79 |
10. 00 | 1 675 322 499,58 |
50,00 | 8 376 612 497,91 |
100,00 | 16 753 224 995,81 |
250,00 | 41 883 062 489,53 |
500,00 | 83 766 124 979,06 |
1 000,00 | 167 532 249 958,12 |
Крипто | USD | INR | EUR | GBP | AUD | CAD |
---|---|---|---|---|---|---|
Биткойн Биткойн | 25805 | 2111075,17 | 23450,79 | 20668,18 | 39120,38 | 35194,8 900 06 |
Эфириум Эфириум | 1734.25 | 141876,85 | 1576,04 | 1389,03 | 2629. 13 | 2365,31 |
Трос USDT | 1 | 81,81 | 0,91 | 0,81 | 1,52 | 1,37 |
БНБ БНБ | 230,03 | 18818,48 | 209,05 | 184,24 | 348,73 | 313,74 |
USD Монета USDC | 1 | 81,75 | 0,91 | 0,81 | 1,52 | 1,37 |
XRP XRP | 0,52 | 42,37 | 0,48 | 0,42 | 0,79 | 0,71 |
Лидо Стейк Эфир СТЕТ | 1732. |