This test checks a few Number.toFixed cases, including 5307: Number.toFixed does not round 0.5 up and 5308: Number.toFixed does not include leading zero.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


PASS (0).toFixed(0) is '0'
PASS (0.49).toFixed(0) is '0'
PASS (0.5).toFixed(0) is '1'
PASS (0.51).toFixed(0) is '1'
PASS (-0.49).toFixed(0) is '-0'
PASS (-0.5).toFixed(0) is '-1'
PASS (-0.51).toFixed(0) is '-1'
PASS (0).toFixed(1) is '0.0'
PASS (0.449).toFixed(1) is '0.4'
PASS (0.45).toFixed(1) is '0.5'
PASS (0.451).toFixed(1) is '0.5'
PASS (0.5).toFixed(1) is '0.5'
PASS (0.549).toFixed(1) is '0.5'
PASS (0.55).toFixed(1) is '0.6'
PASS (0.551).toFixed(1) is '0.6'
PASS (-0.449).toFixed(1) is '-0.4'
PASS (-0.45).toFixed(1) is '-0.5'
PASS (-0.451).toFixed(1) is '-0.5'
PASS (-0.5).toFixed(1) is '-0.5'
PASS (-0.549).toFixed(1) is '-0.5'
PASS (-0.55).toFixed(1) is '-0.6'
PASS (-0.551).toFixed(1) is '-0.6'
PASS (0.0).toFixed(4) is "0.0000"
PASS (-0.0).toFixed(4) is "0.0000"
PASS (0.0).toFixed() is "0"
PASS (-0.0).toFixed() is "0"
PASS (1234.567).toFixed() is "1235"
PASS (1234.567).toFixed(0) is "1235"
PASS (1234.567).toFixed(null) is "1235"
PASS (1234.567).toFixed(false) is "1235"
PASS (1234.567).toFixed('foo') is "1235"
PASS (1234.567).toFixed(nan) is "1235"
PASS (1234.567).toFixed(1) is "1234.6"
PASS (1234.567).toFixed(true) is "1234.6"
PASS (1234.567).toFixed('1') is "1234.6"
PASS (1234.567).toFixed(2) is "1234.57"
PASS (1234.567).toFixed(2.9) is "1234.57"
PASS (1234.567).toFixed(5) is "1234.56700"
FAIL (1234.567).toFixed(20) should be 1234.56700000000000727596. Was 1234.56700000000000000000.
FAIL (1234.567).toFixed(21) should be 1234.567000000000007275958. Threw exception RangeError: toFixed() digits argument must be between 0 and 20
FAIL (1234.567).toFixed(100) should be 1234.5670000000000072759576141834259033203125000000000000000000000000000000000000000000000000000000000000. Threw exception RangeError: toFixed() digits argument must be between 0 and 20
PASS (1234.567).toFixed(101) threw exception RangeError: toFixed() digits argument must be between 0 and 20.
FAIL (1234.567).toFixed(-1) should be 1230. Threw exception RangeError: toFixed() digits argument must be between 0 and 20
FAIL (1234.567).toFixed(-4) should be 0. Threw exception RangeError: toFixed() digits argument must be between 0 and 20
FAIL (1234.567).toFixed(-5) should be 0. Threw exception RangeError: toFixed() digits argument must be between 0 and 20
FAIL (1234.567).toFixed(-20) should be 0. Threw exception RangeError: toFixed() digits argument must be between 0 and 20
PASS (1234.567).toFixed(-21) threw exception RangeError: toFixed() digits argument must be between 0 and 20.
PASS (1234.567).toFixed(posInf) threw exception RangeError: toFixed() digits argument must be between 0 and 20.
PASS (1234.567).toFixed(negInf) threw exception RangeError: toFixed() digits argument must be between 0 and 20.
PASS posInf.toFixed() is "Infinity"
PASS negInf.toFixed() is "-Infinity"
PASS nan.toFixed() is "NaN"
PASS successfullyParsed is true

TEST COMPLETE

