2017-11-03 2 views
0

Ich benutze diese Funktion, um eine Zahl zurückzugeben, die in .5 als HTML & Frac12 endet; also 6,5 würde 6 & frac12; aber aus irgendeinem Grund kommt 15.5 als & frac12; & frac12; was soll es bitte sein?Einen Bruch zurückgeben

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; 
} 
+0

Ihre else-Klausel –

+0

keinen Sinn macht, einen Blick auf https://stackoverflow.com/questions/43254282/convert-5-into-1-2 könnte nützlich sein, – CtineGalloway

Antwort

0

Ich denke, dass in der Funktion preg_replace Sie ein \ vergessen haben.

Es ist wie

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

Wenn Sie nicht . entkommen, dann bedeutet es, „jedes Zeichen“. Kleiner Tippfehler, aber ändert sich sehr.

Sie könnten Ihren Code vereinfachen

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