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 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
'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