1

我有这个代码:

<?php echo $price; ?>

这给了我这个结果:

1,500.99

有什么办法可以让小数上标或下标?

谢谢。

编辑:这段代码就像一个魅力(感谢大卫托马斯):

$parts = explode('.', $price); 
echo "$parts[0].<sup>$parts[1]</sup>";

但如果我的价格是这样的:1,500.99€,它也会在€符号上标上标。这可以阻止吗?如果它不是数字,则不上标,或者在点后仅上标 2 个字符?

4

4 回答 4

8

这目前未经测试,但我认为这很简单:

$parts = explode('.', $price);
echo "$parts[0].<sup>$parts[1]</sup>";

参考:

于 2012-04-16T11:01:22.963 回答
2

您可以使用 html sub 和 sup 标签: http ://www.w3schools.com/tags/tryit.asp?filename=tryhtml_sup

示例代码可以是:

echo preg_replace('/\.([0-9]*)/', '<sup>.$1</sup>', $price);
于 2012-04-16T10:59:38.807 回答
0

使用 HTML 和 CSS,下面是一个示例:

<style type="text/css">
.superscript {
    font-size: xx-small;
    vertical-align: top;
}
.subscript {
    font-size: xx-small;
    vertical-align: bottom;
}
</style>

<body>

<table>
<td class="superscript"><?php echo $price ?></td>
<td class="subscript"><?php echo $price ?></td>
</table>
于 2012-04-16T11:03:49.483 回答
0

检查此代码:

<?php
$val = 10009.99;
echo set_sub_dec($val);

function set_sub_dec($val,$type="sub",$attrib=""){//use "sub" or "sup" or any other HTML tag with attributes
    if(!is_string($val)){
        $val = strval($val);
    }

    $val = split("\.",$val);

    return $val[0].".<$type $attrib>".$val[1]."</$type>";
}

?>
于 2012-04-16T11:06:58.313 回答