我想这样做以显示股票指数的变化:
12 => +12.00
150.5 => +150.50
-30.2 => -30.20
-2.85193 => -2.85
我有这个:
sprintf("%+d", number_format(floatval($key), 2, '.', ','))
但它正在从格式化的数字中删除小数并返回+45
之类的内容。
是否有一种有效的方法来获得+符号和小数?
答案 0 :(得分:4)
%d
适用于整数,您必须使用%f
作为浮点数。
sprintf("%+.2f", $key);
不幸的是,你不能用这个逗号。它们也不会使用原始代码,因为%d
将参数解析为整数,并且当它到达逗号时它将停止读取该数字。
如果你需要标志和逗号,你可以这样做:
($key >= 0 ? '+' : '') . number_format(floatval($key), 2, '.', ','))