SQL舍入和截断,需要彻底解释

时间:2009-10-21 21:14:12

标签: sql mysql rounding truncate

对于SQL和PHP,我是一个新手,我正在尝试舍入平均价格结果并取消当前出现的额外零。

目前我的结果显示为:$ 3.005000

我的代码目前内容如下:

$result = mysql_query("SELECT AVG(price) FROM milk WHERE price > 0 ");
$row = mysql_fetch_row ($result);

我找到了几个SQL舍入和截断的例子,但不幸的是,我见过的教程没有提供关于我应该在何处或如何实现这些更改的有用信息。

这让我猜测在哪里做出改变 - 到目前为止(显然)都没有。

如果有人可以向我提供如何舍入和截断我的结果的示例,其中包括我在当前配置中需要进行这些更改的位置,这将是最有帮助的,我将非常感谢!如果我的愚蠢使解释解决方案变得更加困难,我真的很抱歉。

谢谢!

2 个答案:

答案 0 :(得分:2)

数据的格式化应该在进行查询的脚本中完成,而不是在查询本身中完成。例如,在PHP中,您可以使用sprintf编写以下内容:

$formatted_price = sprintf("%01.2f", $unformatted_price);

the PHP manual的补充示例。)

此外,通常,价格值存储为decimal类型或缩放整数,而不是浮点类型,因为浮点值不准确。

答案 1 :(得分:0)

MySQL具有ROUND()功能。

所以只需在SQL查询中计算平均值:

$result = mysql_query("SELECT ROUND(AVG(price),2) FROM milk WHERE price > 0 ");

如果您最终遇到格式问题,可以在输出期间使用PHP的number_format()函数。