parseFloat возвращает NaN для Цельсия в Фаренгейт - PullRequest
0 голосов
/ 25 января 2019

Я пытаюсь написать некоторую логику для преобразования Цельсия в градусы Фаренгейта, и когда ему передается отрицательное значение, возвращается NaN. Не уверен почему. Вот мое смещение по Фаренгейту:

const fahrenheitOffset = (value) => (value * 1.8) + 32;

и вот моя функция:

function celsiusToFarenheit(celsiusValue) {
  return parseFloat((fahrenheitOffset(celsiusValue)).toFixed(2));
}

и другая функция для преобразования его в строку:

function celsiusToFarenheitString(value) {
  return `${parseFloat(fahrenheitOffset(value)).toFixed(1)}°F`;
}

когда я запускаю эти тесты, я получаю NaN вместо '-0.55'

    test('returns Farenheit float if Farenheit output is requested and valid reading passed', () => {
      expect(temperatureConverter(
        '-0.55',
        unitTypesEnums.FAHRENHEIT.string,
        converterReturnTypeEnums.FLOAT)
      ).toEqual(celsiusToFarenheit(parsed));
    });

    test('returns Fahrenheit string if Fahrenheit output is requested and valid reading passed in', () => {
      expect(temperatureConverter(
        '-0.55',
        unitTypesEnums.FAHRENHEIT.string,
        converterReturnTypeEnums.STRING)
      ).toEqual(celsiusToFarenheitString(parsed));
    });

1 Ответ

0 голосов
/ 25 января 2019

Я думаю, что проблемы в тесте не parseFloat.Этот фрагмент регистрирует -67 в каждом формате.

const fahrenheitOffset = (value) => (value * 1.8) + 32;

function celsiusToFarenheit(celsiusValue) {
  console.log(parseFloat((fahrenheitOffset(celsiusValue)).toFixed(2)));
}
function celsiusToFarenheitString(value) {
console.log(`${parseFloat(fahrenheitOffset(value)).toFixed(1)}°F`);
}

celsiusToFarenheit(-0.55)
celsiusToFarenheitString(-0.55)
...