转换号码 |整数到单词

Posted

技术标签:

【中文标题】转换号码 |整数到单词【英文标题】:Convert number | integer to words 【发布时间】:2018-03-09 13:07:23 【问题描述】:

我想将整数转换为单词,例如:29 将变为 TWENTY NINE,50 将变为 FIFTY。如何使用 php 实现这一点?

这是我目前所拥有的,但它没有提供所需的输出。

$fees_so = $form_data_fees['field']['4'];
$feesInWords = strval($fees_so);
echo $feesInWords;

【问题讨论】:

php.net/manual/en/function.strval.php - 此函数不对返回值执行任何格式设置。如果您正在寻找一种将数值格式化为字符串的方法,请参阅 sprintf() 或 number_format()。 你调试$form_data_fees['field']['4']了吗? $form_data_fees['field'] 包含什么?请将该数组的数据示例添加到您的问题中。 请检查这个***链接***.com/questions/17633985/…。它应该可以解决您的问题。刚刚测试过...... $fees_so 变量返回从 php 表单中选择的 £29。 @LalbhusanYadav 还有比这更好的方法。 【参考方案1】:

您可以将NumberFormatter 类与SPELLOUT 一起使用:

$nf = new NumberFormatter("en", NumberFormatter::SPELLOUT);
echo $nf->format(1999); // one thousand nine hundred ninety-nine

【讨论】:

【参考方案2】:

我最终找到了一个使用来自@aniket-sahrawat 的代码并稍作调整的解决方案

这是代码,以防将来有人需要...

<?php
$fees_so = $form_data_fees['field']['4'];
$words = filter_var($fees_so, FILTER_SANITIZE_NUMBER_INT);
$nf = new NumberFormatter("en", NumberFormatter::SPELLOUT);
echo $nf->format($words);
?>

【讨论】:

【参考方案3】:

假设你有一个数组:

$list_of_fees = array("£29", "£50", "£64");;
for($i = 0; $i < 3; $i++)
    echo substr($list_of_fees[$i], 1) . " Pounds";

【讨论】:

以上是关于转换号码 |整数到单词的主要内容,如果未能解决你的问题,请参考以下文章

将整数转换为单词

有没有办法将数字单词转换为整数?

php 将整数转换为英文单词

字符串到唯一整数散列

如何将浮点值转换为具有精确精度的整数,例如 123.3443 到 1233443?

0047-月份转换