+
+ /**
+ * Format number
+ */
+ public function number(int|float $number, $style = 'decimal', $type = 'default', ?string $locale = null) {
+ //Set types
+ static $types = [
+ 'default' => \NumberFormatter::TYPE_DEFAULT,
+ 'int32' => \NumberFormatter::TYPE_INT32,
+ 'int64' => \NumberFormatter::TYPE_INT64,
+ 'double' => \NumberFormatter::TYPE_DOUBLE,
+ 'currency' => \NumberFormatter::TYPE_CURRENCY
+ ];
+
+ //Get formatter
+ $formatter = $this->getNumberFormatter($locale, $style);
+
+ //Without type
+ if (!isset($types[$type])) {
+ throw new SyntaxError(sprintf('The type "%s" does not exist. Known types are: "%s"', $type, implode('", "', array_keys($types))));
+ }
+
+ //Return formatted number
+ return $formatter->format($number, $types[$type]);
+ }