Mam następujący kod:

function calculateCircleArea(r) {
  // return the area of a circle with radius r
  // round result to 3 decimal numbers
  let area = (r * r * Math.PI);
  return area.toFixed(Number(3));
}
console.log(calculateCircleArea(1));

Zwraca błąd: AssertionError: oczekiwano, że '3.142' będzie równe 3.142

Czy ktoś może pomóc?

-3
JJSR23 19 listopad 2019, 13:48
1
Nie wyświetla żadnego błędu , jeśli uruchomisz tutaj również.
 – 
Prabhjot Singh Kainth
19 listopad 2019, 13:50
2
Uwaga '3.142' nie jest równa (===) do 3,142 jeden to łańcuch, a drugi to liczba. toFixed() zwraca ciąg. Więc twój test asertywności jest poprawny
 – 
Patrick Evans
19 listopad 2019, 13:51

1 odpowiedź

Użyj parseFloat przekonwertuj ciąg na liczbę dziesiętną

toFixed() zwróć jako ciąg. Więc musisz przekonwertować na liczbę

function calculateCircleArea(r) {
  let area = (r * r * Math.PI);
  return parseFloat(area.toFixed(3));
}
console.log(calculateCircleArea(1));
console.log(typeof(calculateCircleArea(1)));
1
prasanth 19 listopad 2019, 13:52
Dziękuję za pomoc, jednak nadal pojawia się ten sam problem?
 – 
JJSR23
19 listopad 2019, 14:46
Czy możesz opisać swój problem?
 – 
prasanth
19 listopad 2019, 14:55
AssertionError: oczekiwano „3.142” jako równego 3.142
 – 
JJSR23
19 listopad 2019, 14:59
Użyj == zamiast === . Ponieważ string === number zawsze fałszywe
 – 
prasanth
19 listopad 2019, 15:12