【发布时间】:2019-01-25 19:39:36
【问题描述】:
我正在尝试编写一些逻辑来将摄氏度转换为华氏度,当传递一个负值时,它返回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));
});
【问题讨论】:
-
fahrenheitOffset似乎没有返回任何值 -
@IsaacVidrine 带有箭头的隐含
-
您使用什么输入进行测试?我没有看到变量
parsed的值。 -
我相信你的问题是,当它被称为
const fahrenheitOffset = (value) => (value * 1.8) + 32;时,value是string。检查那里的value的类型是什么,并将前面的+或Number()转换为数字。 -
@mattherman 注销 fahrenheitOffset 函数中的值,如果我将其直接记录在该函数中,则会注销 72。
标签: javascript reactjs parsefloat