`
jimmy9495
  • 浏览: 301187 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

处理mysql金额运算sum*float出现多位不精确小数

阅读更多
4840.00*0.4500= 2178
SUM(r.sum_rmb_price)*p.default_fee_prop = 2177.9999

sum_rmb_price float(8,2);
default_fee_prop  float(4,4);

方法一:最好的办法是将float字段改为decimal(16,6)。具体方法:可设置一个临时字段,结合MySQL的关键字binary进行准确复制等。

方法二:使用binary关键字解决。具体操作为“select sum(binary 字段名(float类型))”

select sum(a.number*binary(b.price)) as total
        from ler_card as a
        left join ler_items as b on a.itemId=b.itemId
        where user_id=1

http://bbs.chinaunix.net/thread-4113095-1-1.html
http://bbs.chinaunix.net/forum.php?mod=redirect&goto=findpost&ptid=4113095&pid=24076320

mysql字段类型为decimal,则java 实体类的对应属性类型java.math.BigDecimal


MySQL数据类型-decimal详解
对于精度比较高的东西,比如money,我会用decimal类型,不会考虑float,double,因为他们容易产生误差,numeric和decimal同义,numeric将自动转成decimal。

DECIMAL从MySQL 5.1引入,列的声明语法是DECIMAL(M,D)。在MySQL 5.1中,参量的取值范围如下:

·M是数字的最大数(精度)。其范围为1~65(在较旧的MySQL版本中,允许的范围是1~254),M 的默认值是10。

·D是小数点右侧数字的数目(标度)。其范围是0~30,但不得超过M。
  • 大小: 128.6 KB
分享到:
评论

相关推荐

    Java与MySQL中小数保存问题解析.pptx.pptx

    在Java和MySQL中,处理小数时需要注意一系列与精度、数据类型选择以及运算准确性相关的问题。首先,让我们深入了解Java中小数的保存方式。 Java提供了两种基本的小数数据类型:float和double。float占用4个字节,...

    mysql中sum float类型使用小数点的方法

    在MySQL数据库中,当对`float`类型的数据执行`SUM`函数时,可能会遇到小数点后数值不精确的问题。这是因为`float`类型是近似数值存储,它并不保证完全精确,尤其在进行数学计算时可能会引入误差。为了解决这个问题,...

    mysql的使用心得

    - 在处理货币金额、统计数据等场景时,使用`FORMAT`可以使数据显示更加直观。 **3. 处理时间戳** - **函数介绍** - `FROM_UNIXTIME`: 将Unix时间戳转换为日期时间格式。 - `UNIX_TIMESTAMP`: 将日期时间转换为...

    mysql函数,将数字金额转成人民币大写

    在MySQL数据库中,有时我们需要将数字金额转换成人民币的大写形式,这在财务报表或会计系统中非常常见。为了实现这一需求,我们可以自定义一个函数或者利用现有的字符串处理函数。以下是一个关于如何在MySQL中实现这...

    按位与_按位或_按位异或_运算

    2. **不使用临时变量交换两个变量的值**:利用按位异或运算的性质,可以实现两个变量之间值的交换而无需第三个变量。具体步骤如下: - `a = a ^ b` - `b = a ^ b` - `a = a ^ b` #### 四、其他按位运算 除了...

    MySQL中Decimal类型和Float Double的区别(详解)

    float,double类型是可以存浮点数(即小数类型),但是float有个坏处,当你给定的数据是整数的时候,那么它就以整数给你处理。这样我们在存取货币值的时候自然遇到问题,我的default值为:0.00而实际存储是0,同样我...

    Mysql数据库加强.doc

    - **小数类型**:FLOAT和DECIMAL都用于存储浮点数,但DECIMAL更精确,适合财务计算。 - **字符串类型**:如VARCHAR、TEXT,注意中文字符的编码问题。 - **日期和时间类型**:DATE、TIME、DATETIME等,用于记录...

    MYSQL金额转大写.7z

    总之,在MySQL中处理“字符串分割”和“金额转大写”的需求虽然没有直接的函数支持,但可以通过组合使用现有的字符串函数和自定义映射表来达到目的。在实际项目中,这些技巧可以极大地增强数据库处理数据的能力,...

    mysql中文使用手册

    - **5.2 以 ANSI 模式运行 MySQL** - 介绍如何设置 MySQL 使其尽可能符合 SQL 92 标准。 - **5.3 MySQL 相比 ANSI SQL 92 的差别** - 列出了 MySQL 与 SQL 92 之间的主要差异。 - **5.4 MySQL 缺乏的功能** - ...

    MySQL数据库的ODBC驱动安装包(32位和64位Windows系统)

    5. **使用ODBC连接MySQL** - **应用程序连接**:一旦ODBC数据源配置完成,应用程序可以通过指定数据源名称(DSN)来建立到MySQL的连接,从而进行数据查询、插入、更新和删除操作。 - **性能和稳定性**:虽然ODBC...

    MySql数据库的列类型(字段类型)

    - **FLOAT和DOUBLE的UNSIGNED属性**:MySQL 4.0.2以后,浮点类型也可以指定UNSIGNED,不改变取值范围,只是移除负数部分。 - **M和D**:分别表示显示宽度和小数位数,对FLOAT和DOUBLE是可选的,对DECIMAL在MySQL ...

    MySQL教程.pdf

    ### MySQL教程知识点解析 #### 一、MySQL简介 **1.1 MySQL是什么?** - **定义**: MySQL是一种广泛使用的开源关系型数据库管理系统(RDBMS)。 - **特性**: - 支持多种操作系统,如i386、Sparc架构的Linux系统以及...

    MYSQL Cheat Sheet.pdf

    MYSQL 有独立的用户可以使用 SQL 与 MYSQL 数据库进行交互,但更多情况下,MYSQL 是与其他程序结合使用,以创建需要关系数据库的应用程序。LAMP 是一个缩写,表示 Linux、Apache、MYSQL、PHP/Python 和 Perl/Python...

    joe_MySQL笔记

    - **小数型**: 例如 `DECIMAL`, `FLOAT`, `DOUBLE` 等。 以上是MySQL中一些常用的操作和概念的详细介绍,涵盖了从基础配置到复杂查询等多个方面。这些知识点对于理解和掌握MySQL非常关键,无论是初学者还是有一定...

    mysql5.6官方手册

    对于想要深入了解 MySQL 5.6 并充分利用其功能的数据库管理员和开发者来说,这是一份不可或缺的资源。 #### 二、MySQL 5.6 主要功能与特性 **1. 数据库管理系统的概述** MySQL 是一款流行的开源关系型数据库管理...

    MySQL面试55题及答案

    6. **FLOAT与DOUBLE的区别**: - FLOAT存储8位精度的浮点数,4个字节。 - DOUBLE存储18位精度的浮点数,8个字节。 7. **CHAR_LENGTH与LENGTH的区别**: - CHAR_LENGTH计算字符数,LENTH计算字节数,对于非ASCII...

    MySQL55题答案.pdf

    6. **FLOAT和DOUBLE的区别**: - FLOAT存储8位精度,4个字节 - DOUBLE存储18位精度,8个字节 7. **CHAR_LENGTH与LENGTH的区别**: - CHAR_LENGTH返回字符数 - LENGTH返回字节数,考虑字符编码 8. **事务隔离...

Global site tag (gtag.js) - Google Analytics