diff --git a/core/math/big/rat.odin b/core/math/big/rat.odin index e0e58b80f..e84174d54 100644 --- a/core/math/big/rat.odin +++ b/core/math/big/rat.odin @@ -378,9 +378,6 @@ internal_rat_to_float :: proc($T: typeid, z: ^Rat, allocator := context.allocato } has_sign := a.sign != b.sign - defer if has_sign { - f = -builtin.abs(f) - } exp := alen - blen a2, b2 := &Int{}, &Int{} @@ -440,6 +437,9 @@ internal_rat_to_float :: proc($T: typeid, z: ^Rat, allocator := context.allocato if math.is_inf(f, 0) { exact = false } + if has_sign { + f = -builtin.abs(f) + } return }