我有一个基本的 index.php 页面,其中包含一些我想在几个地方打印的变量 - 这里是变量:
<?php
$firstprice = 1.50;
$secondprice = 3.50;
$thirdprice = 20;
?>
我的挑战是,在文档的后面,当我打印时,我得到的价格没有价格中的第二个“0”——这是发生了什么:
<?php print "$firstprice";?> // returns 1.5 - not 1.50!
SO - 我知道如何使用 JS 执行此操作,但如何在 PHP 5+ 中执行此操作?基本上如果已经有小数我想打印第二个'0',所以如果变量等于'3',它保持为'3',但如果它等于'3.5'它转换为显示'3.50'第二个“0”等。
这是一个 JS 示例 - 什么是等效的 PHP?
JS:
.toFixed(2).replace(/[.,]00$/, ""))
非常感谢!!
最佳答案
这很简单,它还可以让您根据口味调整格式:
$var = sprintf($var == intval($var) ? "%d" : "%.2f", $var);
如果变量没有小数,它会将变量格式化为整数 (%d
),如果有小数部分。
更新:正如 Archimedix 指出的那样,如果输入值在 (2.995, 3.005)
范围内,这将导致显示 3.00
.这是修复此问题的改进检查:
$var = sprintf(round($var, 2) == intval($var) ? "%d" : "%.2f", $var);
关于php - 在 PHP 中,如何打印带 2 位小数的数字,但前提是已经有小数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5648205/