在PHP中,如何打印一个有2个小数的数字,但前提是已经有小数
In PHP, how to print a number with 2 decimals, but only if there are decimals already?
我有一个基本的index.php页面,其中包含一些变量,我想在几个地方打印这些变量:
<?php
$firstprice = 1.50;
$secondprice = 3.50;
$thirdprice = 20;
?>
我的挑战是,在文档的后面,当我打印时,我得到的价格中没有第二个"0"——这就是发生的情况:
<?php print "$firstprice";?> // returns 1.5 - not 1.50!
所以-我知道如何用JS做到这一点,但在PHP5+中是如何做到的?基本上,如果已经有小数,我想打印第二个"0",所以如果变量等于"3",它将保持为"3";但如果它等于"3.5",它会转换为显示"3.50",第二个为"0"等。
这里有一个JS示例-PHP的等价物是什么?
JS:
.toFixed(2).replace(/[.,]00$/, ""))
非常感谢!!
这很简单,还可以让您调整格式以品尝:
$var = sprintf($var == intval($var) ? "%d" : "%.2f", $var);
如果变量没有小数,它将把它格式化为整数(%d
(;如果变量有小数部分,它将只格式化为两位小数(%.2f
(。
看看它在行动中。
更新:正如阿基米德所指出的,如果输入值在(2.995, 3.005)
范围内,这将导致显示3.00
。这里有一个改进的检查来修复这个问题:
$var = sprintf(round($var, 2) == intval($var) ? "%d" : "%.2f", $var);
<?php
$number = 1234.56;
// english notation (default)
$english_format_number = number_format($number);
// 1,235
// French notation
$nombre_format_francais = number_format($number, 2, ',', ' ');
// 1 234,56
$number = 1234.5678;
// english notation without thousands seperator
$english_format_number = number_format($number, 2, '.', '');
// 1234.57
?>
此处提供更多信息http://php.net/manual/en/function.number-format.php
您可以使用
if (is_float($var))
{
echo number_format($var,2,'.','');
}
else
{
echo $var;
}
这样的东西怎么样:
$value = 15.2; // The value you want to print
$has_decimal = $value != intval($value);
if ($has_decimal) {
echo number_format($value, 2);
}
else {
echo $value;
}
注:
- 您可以使用
number_format()
将值格式化为两位小数 - 如果值是一个整数,只需显示它
您可以使用number_format((:
echo number_format($firstprice, 2, ',', '.');
打印的另一种方法
$number = sprintf('%0.2f', $numbers);
// 520.89898989 -> 520.89
相关文章:
- 在数字字符串的最后两个数字上加上小数
- 对于大的数字,在这个本地化函数上强制使用两个小数
- 将小数四舍五入为 3 个数字
- 如何使用 javascript 获取带有 2 个小数且不舍入的数字
- 如何使输入只接受两个小数,并且最多有10位数字
- Javascript四舍五入到2个小数
- 在javascript中获取超过17个小数
- Javascript-只获取所选元素的两个小数
- 返回小数后多个数字的JavaScript代码
- Javascript大小数-第N个根
- 正则表达式提取字符串中第一个带小数的数字
- Javascript函数只允许在文本框中输入2个小数点的小数
- 我想比较两个小数,看哪个更大
- Regex格式字符串数字与逗号和2个小数在javascript
- 用两个小数解析浮点,
- 需要目前的整数与2个小数(5.00)在javascript
- 为什么JavaScript列表中的多个小数会在元素list'后抛出'错误
- 在不使用. tofixed()的情况下用两个小数格式化float
- 两个整数,三个小数的正则表达式(XX.XXX)
- 如何四舍五入,如果值是两个小数和格式为3个小数在javascript