回答

收藏

在MySQL中将浮点数转换为十进制

技术问答 技术问答 270 人阅读 | 0 人回复 | 2023-09-12

我不太了解cast功能以及decimal此处。decimal(7,2)其实是什么意思?The first part and thesecond part arg of the function.
( D  r' V$ d4 D' |" H为什么我需要在这里cast/convert浮点数转化为小数?
5 U2 R  U7 O! T6 l0 ymysql> SELECT productCode,MAX(price),MIN(price),             CAST(AVG(price) AS DECIMAL(7,2)) AS `Average`,             CAST(STD(price) AS DECIMAL(7,2)) AS `Std Dev`,             SUM(quantity)       FROM products       GROUP BY productCode; ------------- ------------ ------------ --------- --------- --------------- | productCode | MAX(price) | MIN(price) | Average | Std Dev | SUM(quantity) | ------------- ------------ ------------ --------- --------- --------------- | PEC         |       0.49 |       0.48 |    0.49 |    0.01 |      || PEN         |       1.25 |       1.23 |    1.24 |    0.01 |         15000 | ------------- ------------ ------------ --------- --------- --------------- 下面是一样的sql小提琴吗?: V; P! p7 @" P) a
http://sqlfiddle.com/#!2/1ed51b/1/0
5 e8 r" _6 @( v$ O" m" L5 |- G我的问题再次重复:
9 X  N$ b% }* b0 A' T+ R  b1 x' p[ol]decimal(7,2)其实是什么意思?The first part and the second part arg of the function.& L7 b: R. p* G
为什么我需要在这里cast/convert浮点数转化为小数?[/ol]                                                                / l8 S+ n$ ~" j2 ?2 J" @& x, }
    解决方案:                                                                1 U0 F" Q2 V+ L
                                                                DECIMAL(7、2)表示有固定小数点的数字,共有7位数字,其中2位在小数点右侧。(因此,左5个,右2个。- g  l; j" E! i7 Z) }
你并不 需要
7 J) m6 e5 U  C3 C* I% H,除非你想decimal类型(通常,固定点),而不是FLOAT投资类型行为(与数字小数点右侧相对不可预测的数字有用的近似值)。例如, 带有6 y6 b  Q" |7 L: H2 U
强制转换的产品代码 PEC你的平均值是33333.65; 没有    演员表是33333.653333。& Y# L1 E' i3 {# L) A! c9 u/ V2 p
若经常使用 所有    数字,转换中的数字总数可能会增加。说,就像DECIMAL (14,2)。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则