假设我们在表中有检索到的值,这些值是字符串,所以可以将它们分开。我们有这种类型的报表,但我不喜欢通过编程语言来处理它,而是通过一个sql查询来检索所有报表。
为了简化这里的查询,请看下面的简单mysql查询。
select "68078004281240001301" / "1000000000000000000" from {a dummy table};
上面返回一个值 68.07800428124
,我们正在失去 0001301
小数点后。
已经试过了 FORMAT()
或者 ROUND()
但是不工作,或者我错过了一些mysql函数?
但是在php中使用bcmath时,我们可以这样做
$n = '68078004281240001301';
$d = '1000000000000000000';
bcdiv($n, $d, strlen($d) - 1);
上面的数值会给我们一个精确的精度 68.078004281240001301
请记住,我将在以后的报告中使用这个过滤器。
1条答案
按热度按时间pftdvrlh1#
我假设困难在于,当你将两个字符串(实际上是整数)分开时,它不知道要使用的值的类型(如精度)。如果改为将值强制转换为decimal类型,则可以强制它以任何精度工作(最多65位)。。。
给予。。。