MySQL怪异的浮点数和十进制行为

山姆

我有一个表包含列float(10,5)decimal(10,5)

我将表更新为:

update table1
set decimaltesting = 12311123123123123.456789,
floattesting = 12311123123123123.456789;

结果变为:

decimal = 99999.99999
float = 100000.00000

但是如果我将列更改为float(6,3)decimal(6,3)使用与上述相同的值进行更新

结果变为:

float = 999.999
decimal = 999.999

为什么对于第一种情况,浮点值将是100000.00000

阿尔玛

垃圾进垃圾出

记住这个简单的规则。您的陈述在通常情况下是不正确的-例如,在严格的sql模式下,该陈述将失败并显示错误。但是由于您已经获得了如前所述的结果,因此我认为您已允许这种行为。正确的一点是-您的应用程序知道它的模型数据类型-这样的事情就在控制之中-并且您没有将垃圾传递到DBMS,也导致了垃圾的产生。

始终注重精度

您的示例很好地演示了-定点和浮点数据类型之间有什么区别。第一件事-根据手册页

当给浮点或定点列分配的值超过了指定(或默认)精度和小数位数所隐含的范围时,MySQL将存储代表该范围的相应端点的值。

-这就是为什么您看到这样的原因999.999但是-奇怪100000.00000吗?提示是-您只能在浮点字段中看到此内容。为什么?因为MySQL会将超出范围的值转换为您的字段所允许的最大值,但是由于浮点值大约存储,因此无法保证最终值将保持精度-因此,可能会产生您的100000.00000值。注意,使用定点数据类型永远不会发生这种情况。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MySQL怪异的浮点数和十进制行为

来自分类Dev

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

来自分类Dev

十进制。十进制(浮点数)与十进制。十进制.from_float(浮点数)

来自分类Dev

以十进制形式选择浮点数

来自分类Dev

输出十进制/浮点数组轨的总和

来自分类Dev

十进制到浮点数系统。

来自分类Dev

将浮点数转换为十进制数

来自分类Dev

格式化浮点数,零填充和隐含十进制

来自分类Dev

格式化浮点数,其中包含零填充和隐含的十进制

来自分类Dev

如何在等号REGEX之后捕获浮点数和十进制数

来自分类Dev

MySQL强制转换为浮点数或十进制值

来自分类Dev

无法在 mysql-workbench 中将表字段从浮点数更改为十进制数

来自分类Dev

将MySQL十进制数据类型类型转换为C#浮点数据类型

来自分类Dev

如何将一个浮点数乘以十进制并获得一个浮点数

来自分类Dev

将十进制浮点数转换为二进制并返回

来自分类Dev

在Javascript中将64位十六进制转换为十进制浮点数

来自分类Dev

将十进制浮点数转换为二进制

来自分类Dev

将十进制浮点数转换为二进制并返回

来自分类Dev

如何在两个浮点数之间找到最短的十进制数

来自分类Dev

C#中的溢出异常,用于将浮点数转换为十进制

来自分类Dev

Jsonpickle编码浮点数为空的十进制数

来自分类Dev

不会将字符串格式的十进制数字转换为浮点数

来自分类Dev

django浮点数或十进制数在保存时无意四舍五入

来自分类Dev

数据框将浮点数转换为全十进制字符串

来自分类Dev

从Python中的整数十进制索引生成浮点数

来自分类Dev

在WooCommerce表单字段类型中允许使用十进制浮点数

来自分类Dev

在monotouch中,如何将字符串转换为十进制/浮点数?

来自分类Dev

如何将浮点数转换为十进制整数乘以2的幂?

来自分类Dev

django浮点数或十进制数在保存时无意四舍五入

Related 相关文章

  1. 1

    MySQL怪异的浮点数和十进制行为

  2. 2

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

  3. 3

    十进制。十进制(浮点数)与十进制。十进制.from_float(浮点数)

  4. 4

    以十进制形式选择浮点数

  5. 5

    输出十进制/浮点数组轨的总和

  6. 6

    十进制到浮点数系统。

  7. 7

    将浮点数转换为十进制数

  8. 8

    格式化浮点数,零填充和隐含十进制

  9. 9

    格式化浮点数,其中包含零填充和隐含的十进制

  10. 10

    如何在等号REGEX之后捕获浮点数和十进制数

  11. 11

    MySQL强制转换为浮点数或十进制值

  12. 12

    无法在 mysql-workbench 中将表字段从浮点数更改为十进制数

  13. 13

    将MySQL十进制数据类型类型转换为C#浮点数据类型

  14. 14

    如何将一个浮点数乘以十进制并获得一个浮点数

  15. 15

    将十进制浮点数转换为二进制并返回

  16. 16

    在Javascript中将64位十六进制转换为十进制浮点数

  17. 17

    将十进制浮点数转换为二进制

  18. 18

    将十进制浮点数转换为二进制并返回

  19. 19

    如何在两个浮点数之间找到最短的十进制数

  20. 20

    C#中的溢出异常,用于将浮点数转换为十进制

  21. 21

    Jsonpickle编码浮点数为空的十进制数

  22. 22

    不会将字符串格式的十进制数字转换为浮点数

  23. 23

    django浮点数或十进制数在保存时无意四舍五入

  24. 24

    数据框将浮点数转换为全十进制字符串

  25. 25

    从Python中的整数十进制索引生成浮点数

  26. 26

    在WooCommerce表单字段类型中允许使用十进制浮点数

  27. 27

    在monotouch中,如何将字符串转换为十进制/浮点数?

  28. 28

    如何将浮点数转换为十进制整数乘以2的幂?

  29. 29

    django浮点数或十进制数在保存时无意四舍五入

热门标签

归档