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

时间:2019-02-12 05:43:01

标签: php

我正在使用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,类的返回结果(返回“ $ left $ right \ n \;”)仅为4.5。输入6.00也是一样,而我只得到6。在小数点消失后,谁都可以共享尾随的零?不使用此类,我可以成功打印出4.50和6.00。只有在使用了类之后,我才看到这个问题。

2 个答案:

答案 0 :(得分:1)

保证金额始终在美元金额之后显示美分

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

答案 1 :(得分:0)

使用number_format(),它将保证两位小数。

number_format($the_price, 2);