PHP NumberFormatter格式进行拼写

问题描述

嗨,我在NumberFormatter中使用PHP laravel 现在,如果我想回显数字,我会执行此代码

@PHP
   $digit = new \NumberFormatter(Lang::locale(),\NumberFormatter::SPELLOUT);
   echo $digit->format(round(10.557,3));
@endPHP

结果将是

enter image description here

但我需要做到这一点

ten and five handred and seventy five

如何更改格式.. 谢谢..

解决方法

您可以尝试手动构建函数

function numberToText($number) {
  $digit = new \NumberFormatter(Lang::locale(),\NumberFormatter::SPELLOUT);
  $numberParts = explode('.',(string) round($number,3));
  $formatedNumber =  $digit->format($numberParts[0]);
  if (isset($numberParts[1] ) {
    $formatedNumber .= ' and ' . $digit->format($numberParts[1]);
  }
  return $formatedNumber;
}

@php
  echo numberToText(10.557);
@endphp