toFixed (3) -6.1e-15 возвращает -0.000, как я могу отбросить минус? - PullRequest
2 голосов
/ 23 августа 2011
  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 ]

3 голосов
/ 23 августа 2011
Math.abs(number);//<<absolute value
2 голосов
/ 23 августа 2011

Не будет Math.abs((Math.sin(-1*Math.PI)*300)).toFixed(3) работать?

[редактировать на основе комментария] или:

Number((Math.sin(-1*Math.PI)*300).toFixed(3)).toFixed(3);

1 голос
/ 23 августа 2011

Тестирование на «положительный ноль» неверно. Если вы хотите, чтобы число составляло от 0,000 до 3 dp, просто убедитесь, что оно находится в пределах (-0,0005, 0,0005). например.,

expect(Math.sin(-Math.PI) * 300).between(-0.0005, 0.0005);

(Вам может понадобиться добавить between метод к вашему expect, если он еще не предоставил его под другим именем.)

...