Как добавить % в код?

vave

Полезный
Регистрация
22 Июн 2007
Сообщения
466
Реакции
16
Вот код вывода курса битка

HTML:
var currentPrice = new XMLHttpRequest();

currentPrice.open('GET', 'https://api.gdax.com/products/BTC-USD/book', true);
currentPrice.onreadystatechange = function(){
  if(currentPrice.readyState == 4){
    var ticker = JSON.parse(currentPrice.responseText);
    var price = ticker.bids[0][0];
    document.getElementById('btc').innerHTML = "$" + price;
  };
};
currentPrice.send();


Как сделать так, что бы он выводил на 5% меньше сумму?
 

qpPeW

Постоялец
Регистрация
4 Окт 2009
Сообщения
139
Реакции
57
HTML:
var currentPrice = new XMLHttpRequest();

currentPrice.open('GET', 'https://api.gdax.com/products/BTC-USD/book', true);
currentPrice.onreadystatechange = function(){
  if(currentPrice.readyState == 4){
    var ticker = JSON.parse(currentPrice.responseText);
    var price = ticker.bids[0][0];
    document.getElementById('btc').innerHTML = "$" + (price * 0.95);
  };
};
currentPrice.send();
 

vave

Полезный
Регистрация
22 Июн 2007
Сообщения
466
Реакции
16
А можно как то урезать значение до 4-6 цифр, а то слишком длинная сумма выходит "$8132.199499999999"
 

qpPeW

Постоялец
Регистрация
4 Окт 2009
Сообщения
139
Реакции
57
Используйте функцию toFixed.
 

sempais8

Писатель
Регистрация
18 Окт 2015
Сообщения
8
Реакции
8
Для округления суммы (без запятой) :
HTML:
document.getElementById('btc').innerHTML = "$" + (price * 0.95).toFixed();

Или сумма с запятой, где 2 - количиство знаков после оной:
HTML:
document.getElementById('btc').innerHTML = "$" + (price * 0.95).toFixed(2);
 

garphild

Постоялец
Регистрация
19 Май 2009
Сообщения
60
Реакции
31
Код:
var currentPrice = new XMLHttpRequest();
var decreasePercent = 5;
var precision = 2;

currentPrice.open('GET', 'https://api.gdax.com/products/BTC-USD/book', true);
currentPrice.onreadystatechange = function(){
  if(currentPrice.readyState == 4){
    var ticker = JSON.parse(currentPrice.responseText);
    var price = +ticker.bids[0][0];
    if (price > 0) { 
      price = price * (1 - decreasePercent)
      document.getElementById('btc').innerHTML = "$" + price.toFixed(precision);
    } else {
      document.getElementById('btc').innerHTML = "Error";
    }
  };
};
currentPrice.send();

Настраиваемый вариант. Можно указать точность и процент. Так проще - чтоб потом в код не лезть лишний раз.
Также маленький ньюанс.
var price = +ticker.bids[0][0];
Плюсик перед тикером. Из JSON строка может придти или еще какое неподобство. И тогда скрипт свалится. А так явное приведение типа и проверка на валидность.
 
  • Нравится
Реакции: vave
Сверху