在PHP中,如何打印一个带有2位小数的数字,但只有在已经有小数的情
发布时间:2020-12-13 22:14:12 所属栏目:PHP教程 来源:网络整理
导读:我有一个基本的index.php页面,其中包含一些我想在几个地方打印的变量 – 这里是变量: ?php $firstprice = 1.50; $secondprice = 3.50; $thirdprice = 20;? 我的挑战是,在文档的后面,当我打印时,我得到的价格没有第二个’0’的价格 – 这就是发生的事情: ?p
我有一个基本的index.php页面,其中包含一些我想在几个地方打印的变量 – 这里是变量:
<?php $firstprice = 1.50; $secondprice = 3.50; $thirdprice = 20; ?> 我的挑战是,在文档的后面,当我打印时,我得到的价格没有第二个’0’的价格 – 这就是发生的事情: <?php print "$firstprice";?> // returns 1.5 - not 1.50! 所以 – 我知道如何用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),如果它有小数部分,它将格式化为两位小数(%.2f). See it in action. 更新:正如Archimedix所指出的,如果输入值在范围(2.995,3.005)内,这将导致显示3.00.这是一个改进的检查,修复了这个问题: $var = sprintf(round($var,2) == intval($var) ? "%d" : "%.2f",$var); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |