Php 将0.5转换为1/2

Php 将0.5转换为1/2,php,Php,我想转换任何以.5结尾的数字,使其显示为后跟½的数字,但我不希望0.5显示为0½,所以我这样做: $used = str_replace("0.5", "½", $used); $used = str_replace(".5", "½", $used); 然而,我现在意识到,这也将20.5转换为2½,而不是20½ 我肯定有更好的方法,但我不知道怎么做 示例: 5 returns "5" 5.5 returns "5½" 0.5

我想转换任何以.5结尾的数字,使其显示为后跟½的数字,但我不希望0.5显示为0½,所以我这样做:

$used = str_replace("0.5", "½", $used);
$used = str_replace(".5", "½", $used);
然而,我现在意识到,这也将20.5转换为2½,而不是20½

我肯定有更好的方法,但我不知道怎么做

示例:

5 returns "5"
5.5 returns "5½"
0.5 returns "½"
10.5 returns "10½"
我不认为这是对现有问题的重复,因为该代码将替换或返回“1/2”而不是“½”(在HTML中可以正常工作)


基于上述示例,如果没有进一步的要求,您可以编写:

<?php

  $n = "13.5";
  /* ... */
  $r = $n;
  $r = preg_replace ('/^0\.5$/', '&frac12;', $r);
  $r = preg_replace ('/\.5$/', '&frac12;', $r);

  echo "$r\n";

你能不能列出一些条件,在哪些分数应该做,哪些不应该做,
if($used==“0.5”){…}或者{…}
可能重复的@Jadeye:这是一个与这里问的问题非常不同的问题。这似乎对我不起作用,是因为你的示例条目以零结尾吗(如货币)而我的数字是无格式的。我的值将是10.5而不是10。50@AndyGroom你也可以检查一下。我已经更新了我的帖子,记住了你指定的所有要求。“我不希望0.5显示为0½”。如果
$number
为“0.5”,会发生什么?第二个分支的主体可以简化为:
echo”½;;
。我没有否决,但对于一个简单的任务来说,这是非常复杂的。
if($number==“0.5”){$number=“½;”;}else{$number=str_replace(.5),“½;”,$number)}
<?php

  $n = "13.5";
  /* ... */
  $r = $n;
  $r = preg_replace ('/^0\.5$/', '&frac12;', $r);
  $r = preg_replace ('/\.5$/', '&frac12;', $r);

  echo "$r\n";
  $r = preg_replace ('/(^0|)\.5$/', '&frac12;', $n);