PHP-始终在Oracle中获得2位小数的最佳方法是什么?
作者:互联网
在Oracle返回的值中始终获得小数点后两位的最佳方法是什么?
目前,我将所有与数据库相关的PHP函数包装为number_format等,但是我想将它们直接移到SQL查询中.
更好的是,当我连接到Oracle时,是否可以设置或设置类似的环境变量,而不必这样做?
function OrderNetTotal($id) {
global $dbh;
$sth = $dbh->prepare("SELECT net_total FROM order_totals WHERE order_no = $id");
$sth->execute();
$result = $sth->fetchAll();
return number_format((float)$result[0]['0'], 2, '.', '');
}
注意:我无法编辑数据库架构等.
解决方法:
好吧,您可以只使用ROUND()
$sth = $dbh->prepare("SELECT ROUND(net_total,2) FROM order_totals WHERE order_no = $id");
甚至更好:
$sth = $dbh->prepare("SELECT TO_CHAR(net_total,'99.99') FROM order_totals WHERE order_no = $id");
标签:oracle,number-formatting,sql,php 来源: https://codeday.me/bug/20191027/1947274.html