php - 使用sprintf添加“+”符号从格式化的数字中删除小数

时间:2013-07-11 03:19:48

标签: php printf currency number-formatting

我想这样做以显示股票指数的变化:

12 => +12.00
150.5 => +150.50
-30.2 => -30.20
-2.85193 => -2.85

我有这个:

sprintf("%+d", number_format(floatval($key), 2, '.', ','))

但它正在从格式化的数字中删除小数并返回+45之类的内容。

是否有一种有效的方法来获得+符号和小数?

1 个答案:

答案 0 :(得分:4)

%d适用于整数,您必须使用%f作为浮点数。

sprintf("%+.2f", $key);

不幸的是,你不能用这个逗号。它们也不会使用原始代码,因为%d将参数解析为整数,并且当它到达逗号时它将停止读取该数字。

如果你需要标志和逗号,你可以这样做:

($key >= 0 ? '+' : '') . number_format(floatval($key), 2, '.', ','))