`
jimmy9495
  • 浏览: 297861 次
  • 性别: 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中,小数的精度可能会受到限制,如float类型的小数只能精确到6-7位,double类型也只能精确到15-16位。 浮点数运算问题 在进行浮点数运算时,可能会出现精度丢失的问题,例如0.1+0.2的结果并不等于0.3...

    Mysql 乘法除法精度不一致问题(除法后四位小数)

    MySQL中的乘法与除法运算在处理浮点数精度时可能会表现出不一致性,尤其是在涉及到小数部分时。这种不一致性的根源在于MySQL处理除法和乘法的方式不同。 首先,让我们探讨除法的精度。在MySQL中,当执行除法运算(/...

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

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

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

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

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

    使用sum示和时如果是float类型的数据就会出现小数点了,那么要如何解决这个问题,下面介绍二种方法

    Mysql数据库加强.doc

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

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

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

    MYSQL Cheat Sheet.pdf

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

    MySQL-64位

    2. **处理能力**:64位MySQL能处理更大的数据文件和更多的并发连接,适合处理大量数据和高并发场景。 3. **性能优化**:针对64位架构进行了优化,使得CPU运算速度更快,提升了整体系统性能。 4. **扩展性**:随着...

    MySQL字段范圍

    - **FLOAT**: 4字节,可以表示约6到7位小数的精度,范围大约在-3.4e38到3.4e38之间。 - **DOUBLE/REAL**: 8字节,可以表示约15位小数的精度,范围大约在-1.7e308到1.7e308之间。 3. **定点数类型**(具有固定精度...

    MYSQL金额转大写.7z

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

    mysql的数据类型.pdf

    - **float**: 单精度浮点数,大约能精确到 7 位小数,占用 4 字节。 - **double**: 双精度浮点数,精度更高,大约能精确到 15 位小数,占用 8 字节。 - **decimal**: 用于存储高精度的数值,可以定义精度和小数...

    mysql安装版win64位

    首先,MySQL的64位版本是专为运行在64位Windows系统上的应用程序设计的,它可以利用更多的内存和处理器资源,从而提高性能。对于大型数据库和高并发环境,64位版本是理想的选择。 标题中的“mysql安装版win64位”指...

    MySQL 5.6 for Windows 官方(mysql-5.6.34-winx64.zip)

    - **内存利用**:64位系统可以利用更多的RAM,适合处理大数据量的MySQL实例。 - **处理能力**:64位架构提供更强的计算能力,尤其在进行复杂查询和索引操作时。 - **大文件支持**:64位系统可以处理超过4GB的大...

    Mysql Connector/Net 64位

    MySQL Connector/Net是一款由...在64位操作系统下,其性能表现更佳,适合处理大规模的数据库应用场景。无论是Web应用、桌面应用还是服务端应用,MySQL Connector/Net都是.NET开发人员与MySQL数据库交互的理想选择。

    mysql数据类型.doc

    - **FLOAT(M,D)**:M为总位数,D为小数位数,最多32位有效数字。 - **DOUBLE(M,D)**, **DOUBLE PRECISION**, **REAL**:占用8字节,精度较高,可表示15到16位十进制数字,适用于需要更高精度的场景。 3. **定点型...

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

    按位与_按位或_按位异或_运算的讲解,自我感觉不错!

    四则运算(Demo)

    在IT行业中,四则运算是计算机编程的基础,几乎所有的计算和逻辑处理都离不开加法、减法、乘法和除法。这篇博文“四则运算(Demo)”可能详细阐述了如何在编程环境中实现这些基本运算,并通过实例进行演示。下面我们将...

    mysql 64位 msi版本

    64位版本的MySQL提供更好的性能和更高的数据处理能力,适合处理大数据量的场景。本安装包采用MSI(Microsoft Installer)格式,这是一种由微软开发的安装包格式,通常用于Windows操作系统,提供用户友好的图形界面,...

Global site tag (gtag.js) - Google Analytics