Ric*_*iwi 14
您可以将其强制转换为特定的数据类型,该类型保留数据类型以及舍入到特定精度
select cast(100*(38589/38400) as decimal(10,4))
Run Code Online (Sandbox Code Playgroud)
FYI
select 100*(38589/38400)
# returns 100.4922, not 100 for me
select cast(2 as decimal(20,6))
# output : 2.000000
Run Code Online (Sandbox Code Playgroud)
关于你的数字格式,你看过格式函数:
mysql> SELECT FORMAT(12332.123456, 4);
-> '12,332.1235'
mysql> SELECT FORMAT(12332.1,4);
-> '12,332.1000'
mysql> SELECT FORMAT(12332.2,0);
-> '12,332'
Run Code Online (Sandbox Code Playgroud)
所以从2得到2.000000:
SELECT FORMAT(2,6);
Run Code Online (Sandbox Code Playgroud)
另外,根据mySQL关于分工的文档:
在使用/执行的除法中,使用两个精确值操作数时的结果比例是第一个操作数的比例加上div_precision_increment系统变量的值(默认为4).例如,表达式5.05/0.014的结果具有六位小数的比例(360.714286).
这些规则适用于每个操作,因此嵌套计算意味着每个组件的精度.因此,(14620/9432456)/(24250/9432456)首先解析为(0.0014)/(0.0026),最终结果为8位小数(0.60288653).
这将导致我同意@Cyberwiki关于您将从您的部门看到的结果.