8000 ability to set rounding strategy · symfony/symfony@e63a499 · GitHub
[go: up one dir, main page]

Skip to content

Commit e63a499

Browse files
committed
ability to set rounding strategy
1 parent e6302e2 commit e63a499

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

src/Symfony/Component/Form/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ CHANGELOG
55
-----
66

77
* added `input=datetime_immutable` to DateType, TimeType, DateTimeType
8+
* added `rounding_mode` option to MoneyType
89

910
4.0.0
1011
-----

src/Symfony/Component/Form/Extension/Core/Type/MoneyType.php

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
namespace Symfony\Component\Form\Extension\Core\Type;
1313

1414
use Symfony\Component\Form\AbstractType;
15+
use Symfony\Component\Form\Extension\Core\DataTransformer\NumberToLocalizedStringTransformer;
1516
use Symfony\Component\Form\FormInterface;
1617
use Symfony\Component\Form\FormBuilderInterface;
1718
use Symfony\Component\Form\Extension\Core\DataTransformer\MoneyToLocalizedStringTransformer;
@@ -31,7 +32,7 @@ public function buildForm(FormBuilderInterface $builder, array $options)
3132
->addViewTransformer(new MoneyToLocalizedStringTransformer(
3233
$options['scale'],
3334
$options['grouping'],
34-
null,
35+
$options['rounding_mode'],
3536
$options['divisor']
3637
))
3738
;
@@ -53,11 +54,22 @@ public function configureOptions(OptionsResolver $resolver)
5354
$resolver->setDefaults(array(
5455
'scale' => 2,
5556
'grouping' => false,
57+
'rounding_mode' => NumberToLocalizedStringTransformer::ROUND_HALF_UP,
5658
'divisor' => 1,
5759
'currency' => 'EUR',
5860
'compound' => false,
5961
));
6062

63+
$resolver->setAllowedValues('rounding_mode', array(
64+
NumberToLocalizedStringTransformer::ROUND_FLOOR,
65+
NumberToLocalizedStringTransformer::ROUND_DOWN,
66+
NumberToLocalizedStringTransformer::ROUND_HALF_DOWN,
67+
NumberToLocalizedStringTransformer::ROUND_HALF_EVEN,
68+
NumberToLocalizedStringTransformer::ROUND_HALF_UP,
69+
NumberToLocalizedStringTransformer::ROUND_UP,
70+
NumberToLocalizedStringTransformer::ROUND_CEILING,
71+
));
72+
6173
$resolver->setAllowedTypes('scale', 'int');
6274
}
6375

0 commit comments

Comments
 (0)
0