今天是个好日子。我的代码有问题。我正在尝试制作一个简单的程序,将数字转换为单词,但我在代码中遇到了以下问题。$num = 900.00;$exp = explode('.', $num);$f = new NumberFormatter("en_US", NumberFormatter::SPELLOUT);$num_words = ucfirst($f->format($exp[0])) . ' point ' . ucfirst($f->format($exp[1]));我期待的输出九百读这是我得到的九百点零这是错误注意:未定义的偏移量:1有人可以帮我弄这个吗。我正在努力寻找答案。谢谢大家
1 回答
慕森王
TA贡献1777条经验 获得超3个赞
您需要if else像这样使用来检查点后面的数字。如果为零或小于 1,则不要使用point单词
$num = floatval(900.00);
$exp = explode('.', $num);
$f = new NumberFormatter("en_US", NumberFormatter::SPELLOUT);
// check the number if the number behind point/comma is less than 1
if(count($exp) == 1){
$num_words = ucfirst($f->format($exp[0]));
}else{
// other than that print with point
$num_words = ucfirst($f->format($exp[0])) . ' point ' . ucfirst($f->format($exp[1]));
}
- 1 回答
- 0 关注
- 104 浏览
添加回答
举报
0/150
提交
取消