【问题标题】:Currency and decimal numbers货币和十进制数字
【发布时间】:2017-11-13 13:53:23
【问题描述】:

我正在创建一个测试电子商务商店,但在两件事上遇到了问题: 1) 我的价格有美元符号 ($) 而不是英镑符号 (£)。 2) 我的价格四舍五入。

这是截图

从网上的研究中我发现了如何使用以下代码添加井号:

$<?= '&pound;'. number_format($product['list_price'],2); ?>

我必须添加 &pound 作为引起的 £ 并出现黑色三角形。

这是添加这段代码的结果:

这不是我想要的。我怎么知道价格是 19.99 英镑? (或其他)。

这是数据库中的条目:

价格(list_price 和输入为 £24.99(价格)的价格,以及使用 phomyadim 中的插入选项输入的 £19.99。

这是与产品相关的php代码:

<?php require_once 'core/init.php'; 
$sql = "SELECT * FROM products WHERE featured =1";
$featured = $db->query($sql);
?>

任何帮助将我的货币格式化为英镑,两位小数将不胜感激。

【问题讨论】:

  • 也许从$&lt;?= '&amp;pound;'. number_format($product['list_price'],2); ?&gt;中删除$
  • 您发布的代码前面的$(PHP 标记之外)是货币符号。将其替换为£,这就是您所需要的。关于小数位,请阅读number_format()。或者让money_format() 处理金额和货币(它不能开箱即用,它需要正确设置才能开始使用)。
  • @axiac 这主要是他的数据库的问题。由于他使用decimal 并且没有正确设置它,他的数据库不会接受格式正确的货币。 money_format() 和 number_format() 除了在他可能想要显示其他内容时显示 .00 之外没有任何区别。

标签: php numbers decimal currency


【解决方案1】:

您的数据库结构不正确,10,0 允许小数点后 0 位。这可以在这里看到。

http://sqlfiddle.com/#!9/f54cd/1

将结构更改为 10,2 以允许 2 位小数。

http://sqlfiddle.com/#!9/f1bf0f/1

您可以在此处阅读更多相关信息,

https://dev.mysql.com/doc/refman/5.7/en/precision-math-decimal-characteristics.html

黑色菱形是编码问题,请使用 UTF8。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 2012-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多