diff --git a/homeassistant/util/template.py b/homeassistant/util/template.py index 9fbbcff13b9b..7e3c1f573b0d 100644 --- a/homeassistant/util/template.py +++ b/homeassistant/util/template.py @@ -13,7 +13,8 @@ ENV = SandboxedEnvironment() def forgiving_round(value, precision=0): """ Rounding method that accepts strings. """ try: - return int(value) if precision == 0 else round(float(value), precision) + return int(float(value)) if precision == 0 else round(float(value), + precision) except ValueError: # If value can't be converted to float return value diff --git a/tests/util/test_template.py b/tests/util/test_template.py index 4592e4549d40..b8752806625b 100644 --- a/tests/util/test_template.py +++ b/tests/util/test_template.py @@ -48,19 +48,19 @@ class TestUtilTemplate(unittest.TestCase): '{% for state in states.sensor %}{{ state.state }}{% endfor %}')) def test_rounding_value(self): - self.hass.states.set('sensor.temperature', 12.34) + self.hass.states.set('sensor.temperature', 12.78) self.assertEqual( - '12.3', + '12.8', template.render( self.hass, '{{ states.sensor.temperature.state | round(1) }}')) def test_rounding_value2(self): - self.hass.states.set('sensor.temperature', 12.34) + self.hass.states.set('sensor.temperature', 12.72) self.assertEqual( - '123', + '127', template.render( self.hass, '{{ states.sensor.temperature.state | multiply(10) | round }}'))