mysql decimal类型用于对精度要求较高的场景,比如账户余额等。
decimal类型基础知识推荐阅读官方文档;
这里介绍下decimal类型进行运算时的默认类型转化方法,不了解的朋友,跟随jbxue小编一起来看看吧。
例子:
执行查询:
在mysql中decimal2double设置断点,执行select deci-”1.111″ from test会调用decimal2double将decimal和string都转化成double进行算数运算,从堆栈上看调用是按照real_op来计算。
如下:
如果另外一个变量是decimal或者integer的时候按照decimal来进行,其他情况下都使用浮点数来进行。
If one of the arguments is a decimal value, comparison depends on the other argument. The arguments are compared as decimal values if the other argument is a decimal or integer value, or as floating-point values if the other argument is a floating-point value.
In all other cases, the arguments are compared as floating-point (real) numbers.
如何进行decimal进行计算,在所有计算的地方显式的使用cast进行类型转化,比如把sql写成这样,所有用到alinuxjishu/9952.html target=_blank class=infotextkey>mount的地方都加上deci-cast(“1.111″ as decimal(25,2))。