mysql在进行不同类型的参数的运算时会产生隐式转换。其中,当需要把字符串转为浮点数的时,mysql从左边开始对字符串做转换处理的,转换规则如下:
可能做程序的人都知道,float类型是可以存浮点数(即小数类型),但是float有个坏处,当你给定的数据是整数的时候,那么它就以整数给你处理。这样我们在存取货币值的时候自然遇到问题,我的default值为:0.00而实际存储是0,同样我存取货币为12.00,实际存储是12.幸好mysql提供了两个数据类型:numeric和decimal,这两种数据类型可以轻松解决上面的问题:NUMERIC和DECIMAL类型被MySQL以同样的类型实现,这在SQL92标准中是允许的。他们用于保存对准确精度有重要要求的值,例如与金钱有关的数据。当以它们中的之一声明一个列时,精度和数值范围可以(通常是)被指定;例如:salaryDECIMAL(5,2)在这个例子中,5(精度(precision))代表重要的十进制数字的数目,2(数据范围(scale))代表在小数点后的数字位数。在这种情况下,因此,salary列可以存储的值范围是从-99.99到99.99。(实际上MySQL在这个列中可以存储的数值可以一直到999.99,因为它没有存储正数的符号)。译者注:M与D对DECIMAL(M,D)取值范围的影响类型说明取值范围(MySQL=3.23)欢迎分享,转载请注明来源:内存溢出
评论列表(0条)