我有一个浮点数。我想将它转换为具有以下两个规则的字符串
例如
499 => "499"
499.5 => "499.50"
499.99 => "499.99"
499.989 => "499.99"
你会在php中做到这一点吗?
答案 0 :(得分:3)
我认为这应该适合你:
if(round(($var*100),0)%100==0)
{
echo round($var,0);
}
else
{
echo round($var,2);
}
可能有更优雅的方式,但这将以下列方式工作:
如果float乘以100并且舍入结束于00(足够接近舍入到无小数),则回显没有任何小数位。否则它会四舍五入到小数点后两位 - 浮点数应该过多地舍入,所以我认为总会看到两个点。
答案 1 :(得分:2)
您可以在PHP中使用number_format
Type Casting (string)
$numbers = array(499,499.5,499.99,499.989);
foreach ( $numbers as $number ) {
var_dump(__format($number));
}
使用的功能
function __format($number) {
if (is_float($number)) {
return number_format($number, 2);
} else {
return (string) $number;
}
}
输出
string '499' (length=3)
string '499.50' (length=6)
string '499.99' (length=6)
string '499.99' (length=6)