返回一个分数

时间:2017-11-03 12:09:51

标签: php

我正在使用此函数返回一个以.5结尾的数字作为html½,因此6.5将变为6½但由于某种原因15.5出现为½½,应该怎么样?

function Fractionalise($value) {
 if ($value=="0.5") {
  $value = "½";
 }
 else {
  if (preg_match("/\.5[0]{0,}$/", $value)) $value = preg_replace("/.5[0]{0,}/", "½", $value);
 }
 return $value;
}

2 个答案:

答案 0 :(得分:0)

我认为在preg_replace函数中你忘了一个\。

应该是

preg_replace("/\.5[0]{0,}/", "½", $value)

答案 1 :(得分:0)

如果你不逃避.,那么它意味着"匹配任何角色"。小错字,但变化很大。

您可以简化代码

function Fractionalise($value) {
  return preg_replace("/\.50*/", "½", $value);
}