chromium/third_party/blink/web_tests/fast/forms/range/range-value-rounding.html

<head>
<script src="../../../resources/js-test.js"></script>
</head>
<body>
<input id="foo" type=range step=0.1 value=0.6>
<div id="console"></div>
<div id="sliders"></div>
<script>
description("<a href='http://bugs.webkit.org/show_bug.cgi?id=80009'>80009 Introduce Decimal arithmetic to fix rounding errors in number/range input types</a>");

function createSample(step, value, max)
{
    var container = document.createElement("span");
    container.innerHTML = '<input type=range min=0 max=' + max + ' step=' + step + ' value=' + value + '><br>';
    document.getElementById("sliders").appendChild(container);
    return container.firstChild;
}

var zeros = "0.";
for (var exponent = 0; exponent < 15; ++exponent) {
    var step = zeros + "1";
    for (var digit = 1; digit <= 9; ++digit) {
        var value = zeros + digit.toString();
        var sample = 'createSample("' + step + '", "' + value + '", "1e-' + exponent + '")';
        var stepExponent = exponent + 1;
        shouldBeEqualToString(sample + '.value', stepExponent >= 7 ? digit + "e-" + stepExponent : value);
        shouldBe(sample + '.valueAsNumber', value);
    }
    zeros += "0";
}

// Remove generated sliders.
document.getElementById("sliders").innerHTML = "";
</script>
</body>