zoukankan      html  css  js  c++  java
  • MySQL浮点数与定点数

    浮点数一般用于表示含有小数部分的数值。当一个字段被定义为浮点类型后,如果插入数据的精度超过该列定义的实际精度,则插入值会被四舍五入到实际定义的精度值,然后插入,四舍五入的过程不会报错。在MySQL中float和double用来表示浮点数。
    这里写图片描述

    定点数不同于浮点数,定点数实际上是以字符串形式存放,所以定点数可以更精确地保存数据。如果实际插入的数值精度大于实际定义的精度,则MySQL会进行警告(默认的SQLMode下),但是数据按照实际精度四舍五入后插入;如果SQLMode是在TRADITIONAL(传统模式)下,则系统会直接报错,导致数据无法插入。在MySQL中,decimal(或numberic)用来表示定点数。
    这里写图片描述


    浮点数与定点数的区别,看一个例子
    这里写图片描述
    这里写图片描述
    这里写图片描述
    f列的值由1310.72.32变成了131.072.31,这里上面的数值在使用单精度浮点数表示时,产生了误差。这是浮点数特有的问题。因此在精度要求比较高的应用中(比如货币)要使用定点数而不是浮点数来保存数据

    在今后关于浮点数和定点数的应用中,需要考虑到以下几个原则

    1. 浮点数存在误差问题
    2. 对货币等,对精度敏感的数据,应该用定点数表示或存储
    3. 在编程中,如果用到浮点数,要特别注意误差问题,并尽量避免做浮点数比较
    4. 要注意浮点数中一些特殊值的处理
  • 相关阅读:
    abp记录1
    javascript Date format(js日期格式化) 转载
    css 宽高等比
    MVC 自己创建URL 对象处理路径
    转载 Easyui Tree方法扩展
    Bootstrap 学习笔记1
    动态创建form 完成form 提交
    单例模式
    工厂模式(已体会到此模式的意义)
    设计模式实践
  • 原文地址:https://www.cnblogs.com/aotemanzhifu/p/9192388.html
Copyright © 2011-2022 走看看