我在计算百分比。一个例子是38589/38400
所以百分比是100*(38589/38400),大约等于100.4921875,但结果显示为100。
我怎样才能让它以x个小数显示?
同样,如果我想将2显示为2.000000,同样的效果也可以吗?
谢谢!
发布于 2011-03-17 06:29:01
您可以将其强制转换为特定的数据类型,这将保留数据类型以及舍入到一定的精度
select cast(100*(38589/38400) as decimal(10,4))仅供参考
select 100*(38589/38400)
# returns 100.4922, not 100 for me
select cast(2 as decimal(20,6))
# output : 2.000000发布于 2011-03-17 06:26:15
关于您的数字格式,您是否查看过format function
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'因此,要从2中获得2.000000,请这样做:
SELECT FORMAT(2,6);此外,根据mySQL关于部门的文档:
在使用/执行除法时,使用两个精确值操作数时结果的小数位数是第一个操作数的小数位数加上div_precision_increment系统变量的值(默认为4)。例如,表达式5.05 / 0.014的结果具有六个小数位(360.714286)的刻度。
这些规则适用于每个操作,因此嵌套计算意味着每个组件的精度。因此,(14620 / 9432456) / (24250 / 9432456)首先解析为(0.0014) / (0.0026),最终结果具有8位小数(0.60288653)。
这将导致我同意@Cyberwiki关于您将从您的部门看到的结果。
发布于 2011-03-17 06:27:43
您需要将其中一种类型转换为浮点类型:
SELECT 100.0 * ((338589 * 1.0)/38400) ...https://stackoverflow.com/questions/5332583
复制相似问题