From 5b2158ab1867943977eae4f401353792de5d87b0 Mon Sep 17 00:00:00 2001 From: tsvankay Date: Wed, 18 Sep 2019 01:03:29 +0900 Subject: [PATCH] fixed __repr__ return value for -0.0 --- tests/snippets/floats.py | 1 + vm/src/obj/objfloat.rs | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/snippets/floats.py b/tests/snippets/floats.py index 943b1d9ae..834c852b8 100644 --- a/tests/snippets/floats.py +++ b/tests/snippets/floats.py @@ -198,6 +198,7 @@ assert_raises(ValueError, float('nan').as_integer_ratio) assert str(1.0) == '1.0' assert str(0.0) == '0.0' +assert str(-0.0) == '-0.0' assert str(1.123456789) == '1.123456789' # Test special case for lexer, float starts with a dot: diff --git a/vm/src/obj/objfloat.rs b/vm/src/obj/objfloat.rs index 4a7682241..8945840bb 100644 --- a/vm/src/obj/objfloat.rs +++ b/vm/src/obj/objfloat.rs @@ -411,7 +411,7 @@ impl PyFloat { #[pymethod(name = "__repr__")] fn repr(&self, vm: &VirtualMachine) -> String { if self.is_integer(vm) { - format!("{:.1}", self.value) + format!("{:.1?}", self.value) } else { self.value.to_string() }