Php 将0.5转换为1/2
我想转换任何以.5结尾的数字,使其显示为后跟½的数字,但我不希望0.5显示为0½,所以我这样做: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
$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$/', '½', $r);
$r = preg_replace ('/\.5$/', '½', $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$/', '½', $r);
$r = preg_replace ('/\.5$/', '½', $r);
echo "$r\n";
$r = preg_replace ('/(^0|)\.5$/', '½', $n);