我有很长的十进制数字,我想更容易阅读。有很多0的参与,我想加粗字符串的结尾,数字停止只是0的位置。这个数字总是有8位小数,不多也不少。值得注意的是,我希望任何尾随零也是粗体,我不只是想避免整个0加粗。
示例:
之前 - 0.00004320
之后 - 0.0000 4320
非常感谢任何正确方向的帮助或指示。
感谢。
答案 0 :(得分:3)
你可以使用循环和一些字符串操作来完成它:
function doTheThing($number) {
$length = strlen($number);
$period = strpos($number, '.') + 1;
for ($i = $period; $i < $length; $i++) {
if ($number[$i] !== '0') {
$number = substr($number, 0, $i).'<b>'.substr($number, $i).'</b>';
break;
}
}
return $number;
}
echo doTheThing('0.00004320');
或者您可以使用正则表达式替换来执行此操作:
function doTheThing($number) {
return preg_replace('/^(\d+\.0*)(\d+)$/', '$1<b>$2</b>', $number);
}
echo doTheThing('0.00004320');
echo doTheThing(sprintf('%.8f', 0.00004320)); // if your number is not a string