我使用SimpleXML来从远程服务器恢复XML,我得到的值,可以是这个样子:PHP的SimpleXML - 格式化整数
1.28586732
-1.2357956
我救在可变这些值,但我想:
- 显示的每个值以不超过2位小数
- 有一个加号之前的值,如果它是正
- 应用不同的CSS样式取决于值是否是正面或负面的(例如显示数值为红色,如果它是一个负数)
谢谢!
我使用SimpleXML来从远程服务器恢复XML,我得到的值,可以是这个样子:PHP的SimpleXML - 格式化整数
1.28586732
-1.2357956
我救在可变这些值,但我想:
谢谢!
要显示只有2位小数既可以使用round($num, 2)
或sprintf("%.2f", $num)
,所不同的是sprintf
总是返回2位小数,即5
将5.00
,而round
仅示出了小数点的必需量。 sprintf
也是区域意识。
为了有一个加号之前的值,你会简单地做if ($num >= 0) $num = '+'.$num;
最后做的CSS样式,你应该换一个跨度数,并给它一个类,即无论是positive
或negative
。
做的所有三个,你可以有这样的功能:
function format_decimal($num)
{
return sprintf(
'<span class="%s">%+.2f</span>',
$num < 0 ? 'negative' : 'positive',
$num
);
}
查看number_format。 http://php.net/manual/en/function.number-format.php然后如果> = 0为肯定,< =否定检查。
number_format将失败在一根绳子上。 –
您可能希望首先将其转换为(float)或(double)。 – Xedecimal
令:
$s=1.2344545665
if($s>=0)
{
echo "<div class=\"addclass\">+".roundDigits($s,2) . "</div>";
}
else
{
echo "<div class=\"minusclass\">-".roundDigits($s,2) . "</div>";
}
你在变量定义后缺少一个分号。 “roundDigits”是什么,我认为你的意思是“圆”。为什么当它隐式存在时,你会在负数上加上负号?这个答案有很多错误。 –
@stereofrog:很好的捕获,这是一个更好的方式来做到这一点,我会编辑我的答案。 –
太棒了!谢谢:) – Jane