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(number);//<<absolute value

Не было бы 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, если он еще не предоставлен под другим именем.)

Другие вопросы по тегам