From 16ba575d5b878019bb3733bf8e1df8253353728d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Correa=20Casablanca?= Date: Wed, 5 Jul 2017 09:41:14 +0200 Subject: [PATCH] Fix issue #58 --- src/Decimal.php | 3 +++ tests/regression/issue58Test.php | 17 +++++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 tests/regression/issue58Test.php diff --git a/src/Decimal.php b/src/Decimal.php index 8fee2c0..3e3fb6a 100644 --- a/src/Decimal.php +++ b/src/Decimal.php @@ -146,6 +146,9 @@ public static function fromString(string $strValue, int $scale = null): Decimal $scale = $scale ?? $min_scale; if ($scale < $min_scale) { $value = self::innerRound($value, $scale); + } elseif ($min_scale < $scale) { + $hasPoint = (false !== \strpos($value, '.')); + $value .= ($hasPoint ? '' : '.') . \str_pad('', $scale - $min_scale, '0'); } return new static($value, $scale); diff --git a/tests/regression/issue58Test.php b/tests/regression/issue58Test.php new file mode 100644 index 0000000..6cf6d3f --- /dev/null +++ b/tests/regression/issue58Test.php @@ -0,0 +1,17 @@ +assertEquals(6.495, $value->div($divisor)->asFloat()); + } +} \ No newline at end of file