PHP 存入 decimal(60,30) 类型数据,第15位的时候被四舍五入了
如题:
$before = NavigationModel::where('uid', $userId)->find($beforeId);
$beforeRank = $before->rank ?? 0;
$after = NavigationModel::where('uid', $userId)->find($afterId);
$afterRank = $after->rank ?? bcadd($current->rank, 2, 30);
$current->rank = (string) bcdiv(bcadd($beforeRank, $afterRank, 30), 2, 30);
dump($beforeRank);
dump($afterRank);
dump(bcadd($beforeRank, $afterRank, 30));
dump($current->rank);
$current->save();
打印出来事正常的写入到数据库就被四舍五入了,求大佬解答
不需要使用 mysql 函数、其实是被框架(thinkphp5)给科学计数法了,通过设置模型字段类型也不起作用,设置字段值的时候,使用 DB::raw("100000000000000000000.100000000000000000000000000001") 方法包裹就可以了;
先手动填到mysql(一般没有问题) 没有问题就打印模型出来 在打印sql 看执行的语句