为什么我在小数点后两位尾随零没有打印出来?

问题描述 投票:0回答:2

我使用一个类从GitHub的字符串操作可以在热敏打印机上打印出来。这里是类

class item
{
    private $name;
    private $price;
    private $dollarSign;

    public function __construct($name = '', $price = '', $dollarSign = false)
    {
        $this -> name = $name;
        $this -> price = $price;
        $this -> dollarSign = $dollarSign;
    }

    public function __toString()
    {
        $rightCols = 10;
        $leftCols = 38;
        if ($this -> dollarSign) {
            $leftCols = $leftCols / 2 - $rightCols / 2;
        }
        $left = str_pad($this -> name, $leftCols) ;
6y
        $sign = ($this -> dollarSign ? 'RM ' : '');
        $right = str_pad($sign . $this -> price, $rightCols, ' ', STR_PAD_LEFT);
        return "$left$right\n";
    }
}

这里的问题是,我仍然得到的价格不印例如尾0,输入是4.50和返回结果(返回“$左向右$ \ n”;)从类是只有4.5。这同样适用于输入6.00,我也只得到6任何人都可以在后零共享小数走了以后?不使用这个类,我可以成功打印机出4.50 6.00和。只有使用类后,我看到了这个问题。

php
2个回答
1
投票

保证始终显示美元仙后(一个或多个)量

sprintf('%0.2f', $the_price);

0
投票

使用number_format(),这将保证小数点后两位。

number_format($the_price, 2);
© www.soinside.com 2019 - 2024. All rights reserved.