toFixed(3) -6.1e-15 возвращает -0.000, как я могу отбросить минус?
it ("tests a positive zero", function() {
expect((Math.sin(-1*Math.PI)*300).toFixed(3)).toEqual("0.000");
});
Но это терпит неудачу, потому что это дает -0,000 (проверено на Chrome и Safari). Удаление - с помощью regexp.replace мое последнее (и в настоящее время единственное решение) есть еще?
3 ответа
Решение
Не было бы Math.abs((Math.sin(-1*Math.PI)*300)).toFixed(3)
Работа?
[редактировать на основе комментария] или:
Number((Math.sin(-1*Math.PI)*300).toFixed(3)).toFixed(3);
Проверка на "положительный ноль" неверна. Если вы хотите, чтобы число составляло от 0,000 до 3 dp, просто убедитесь, что оно находится в пределах (-0,0005, 0,0005). например,
expect(Math.sin(-Math.PI) * 300).between(-0.0005, 0.0005);
(Вам может понадобиться добавить between
метод к вашему expect
, если он еще не предоставлен под другим именем.)