dm/decimal-calculator-bundle
0.1 + 0.2 ≠ 0.3) are unacceptable. Leverages PHP’s BC Math under the hood, ensuring compliance with IEEE 754 for arbitrary precision.bn-php), with no database or external service requirements.php-decimal).gmp) suffice, or is arbitrary precision non-negotiable?php-decimal or bcmath direct usage?moneyphp/money) that bundle precision + currency logic?DecimalCalculator) to avoid bundle bloat.composer require dm/decimal-calculator-bundle
config/app.php:
TheCelavi\DmDecimalCalculatorBundle\DmDecimalCalculatorBundle::class,
use TheCelavi\DmDecimalCalculatorBundle\Service\DecimalCalculator;
class OrderController {
public function __construct(private DecimalCalculator $calculator) {}
public function calculateTotal() {
$total = $this->calculator->add('1.10', '2.20'); // Returns "3.30" (string)
}
}
config/packages/twig.php:
twig:
extensions:
- TheCelavi\DmDecimalCalculatorBundle\Twig\DecimalCalculatorExtension
{{ '1.10' | dm_decimal_add('2.20') }} {# Outputs "3.30" #}
extension=bcmath is enabled in php.ini.gmp or php-decimal).php-decimal if the bundle stagnates.BCMath exceptions (e.g., stack overflow for large numbers). Add validation for input sizes.Resources/doc is minimal; supplement with internal runbooks for edge cases (e.g., division by zero).| Scenario | Impact | Mitigation |
|---|---|---|
| BC Math disabled | Calculations fail silently | Validate extension_loaded('bcmath') at runtime. |
| Large number overflow | Memory exhaustion | Enforce max digit limits (e.g., 100). |
| Twig template errors | Runtime exceptions | Wrap Twig filters in try-catch. |
| Bundle abandonment | No security updates | Fork or migrate to php-decimal. |
0.1 + 0.2, division, large numbers).How can I help you explore Laravel packages today?