**Do you want to request a _feature_ or report a _bug_?**
Bug
**What is the current behavior?**
React at the beginning rounds `input[type=range]` value to 0 or 1, and then looks at step parameter which is 0.1 for example. The result is incorrect value of input after component mounts. When I put `value` attribute after `step` attributes, it works fine.
**If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem via https://jsfiddle.net or similar (template: https://jsfiddle.net/reactjs/69z2wepo/).**
Demo: https://jsfiddle.net/2Lm4gy5k/ Comment or uncomment line 13 and 14 to see the difference.

**What is the expected behavior?**
To always look at step parameter and then round the value (if required).
**Which versions of React, and which browser / OS are affected by this issue? Did this work in previous versions of React?**
v15.1.0 (Opera, Chrome, Firefox). 

Yes, works in v.0.14.0 (https://jsfiddle.net/wrcnLugd/)

}
    }
    
    var checked = props.checked;
    if (checked != null) {
      DOMPropertyOperations.setValueForProperty(
        ReactDOMComponentTree.getNodeFromInstance(inst),
        'checked',
        checked || false
      );
    }
    var node = ReactDOMComponentTree.getNodeFromInstance(inst);
    var value = LinkedValueUtils.getValue(props);
    if (value != null) {
      
      
      var newValue = '' + value;
      
      if (newValue !== node.value) {
        node.value = newValue;
      }
    } else {
      if (props.value == null && props.defaultValue != null) {
        node.defaultValue = '' + props.defaultValue;
      }
      if (props.checked == null && props.defaultChecked != null) {
        node.defaultChecked = !!props.defaultChecked;
      }
    }
  },