печать с использованием JavaScript - PullRequest
0 голосов
/ 02 мая 2018

Итак, у меня есть некоторые значения, которые должны быть напечатаны как toFixed (8), но иногда случается, что значение является строкой с текстом, и поэтому все, что следует за этим (в цикле), забывается из-за ошибки.

Есть ли возможность использовать toFixed (8), если он может и иным образом печатать var без tofixed?

$.each(trades, function(_, obj) {
  if (obj['sold'] == true) {
    if (obj['enddate'] === undefined) {
      count = 1
      profit = obj['profit_percentage']
      tradeList.add({
        startdate: obj['datetime'],
        if (typeof obj['buyprice'] === "number") {
          buyprice: obj['buyprice'].toFixed(8)
        }
        else {
          buyprice: obj['buyprice']
        }
      });
    }
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

Ответы [ 2 ]

0 голосов
/ 02 мая 2018

Вы можете использовать typeof , чтобы проверить, является ли текущее значение числом, которое вы можете использовать для фиксации до тех пор, пока ваши числа не являются также строками.

var myMixedData = ["string", 0.3434, .434234434533422, "anotherString", .2434242];

myMixedData.forEach(function(thing) {
  if (typeof thing === "number") {
    console.log(thing.toFixed(8));
  } else {
    console.log(thing);
  }
});

После просмотра вашего кода вот более подробный ответ, который может быть более полезным. Я не был уверен, что это за тип obj tradeList, но здесь это массив объектов.

var trades = [{"sold": true,"datetime": "date1","buyprice": 23.343252}, {"sold": true,"datetime": "date2","buyprice": "justAStringHere"}];

var tradeList = [];

$.each(trades, function(_, obj) {
  if (obj['sold'] == true) {
    if (obj['enddate'] === undefined) {
      count = 1;
      //profit  = obj['profit_percentage']
      var tradeListObj = {};
      tradeListObj.startDate = obj['datetime'];
      
      var buyprice = obj['buyprice'];
      if (typeof buyprice === "number") {
        buyprice = buyprice.toFixed(8);
      }
      
      tradeListObj.buyprice = buyprice;
      tradeList.push(tradeListObj);
    }
  }
});

console.log(tradeList);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
0 голосов
/ 02 мая 2018

Всегда может, Number.prototype.toFixed возвращает строковое представление результата.

Итак, 0.123.toFixed (2) на самом деле является строкой «0.12». И если вы хотите, чтобы оно стало числом, используйте унарный плюс: + 0.123.toFixed (2) вернет число 0,12.

Другая ситуация, если вы вводите не число, а другую историю.

Надеюсь, что я ответил на ваш вопрос

...