格式化货币价值时出错 - Cakephp 3

Error formatting monetary value - Cakephp 3

朋友们,我有输入一个产品的价格。我使用掩码来格式化值,但只有数字保存在数据库中。没有任何字符。

12345, 123456.

我正在尝试使用 number_format() 在 php 中格式化它。我试过 money_format(),但总是 returns 错误。

两个出口是:123,451.234,56

我正在使用:

<?= number_format($product->price, 0, ",", "."); ?>

但后来他 returns:12.345123.456

谁能分析一下,不胜感激。欢迎任何评论。

价格字段是varchar,但我也试过double和float。

如果我没理解错的话,你是从一个 varchar 开始的,因为它没有“.”,所以将被评估为一个整数。其中最后 2 个数字是您的小数点(分)。

因此,首先将整数除以 100,然后应用数字格式:

number_format($product->price / 100, 0, ",", ".");