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