首页 > 编程知识 正文

bigdecimal最大位数,数据库乘法运算

时间:2023-05-05 13:53:41 阅读:128079 作者:283

一. MySQL的decimal类型 MySQL数据库具有decimal类型。 ` product _ price ` decimal (8,2 ) NOT NULL COMMENT (单价) ', decimal (8,2 )其中,8表示有效位数,即整数小数共有8位以下,2表示保留两个小数。 e cimal (8,2 )表示数值共有8位,其中6位整数、2位小数。 例: decimal (2,1 )这种情况下,插入数据“12.3”、“12”等时会发生“数据溢出错误”的异常; 插入1.23或1.2345 .会自动舍入为1.2。 插入"2"会自动添加到" 2.0 "中,以确保包含1位小数的2位有效长度。 数据库中的医学类型。 Java使用BigDecimal进行接收。 这次,主要谈的是Java的BigDecimal。 二. Java的BigDecimal类型 1、介绍 引用http://www.cn blogs.com/chens sy/archive/2012/09/09/2677279.html的例子: 公共类测试{ publicstaticvoidmain (字符串[ ] args ) { 系统. out.println (0. 060.01; system.out.println(1.0-0.42; system.out.println(4.015*100; system.out.println(303.1/1000; } } 输出结果: 0.069999999999 0.5800000000000000001 401.49999999999994 0.303100000000000004 我认为你错了,结果是这样的。 问题在哪里? 因为我们的计算机是二进制的。 浮点数不能用二进制形式准确表示。 我们的CPU显示浮点数由指数和尾数两部分组成。 这种表示方法一般会失去一定的精度,一些浮点数运算也会产生一定的误差。 例如,2.4的二进制表示不是准确的2.4。 反而最近的二进制显示为2.3999999999999999。 浮点数值实际上是通过特定的公式计算的。 实际上,java的float只用于科学计算和工程计算,很多商业计算一般使用java.math.BigDecimal类进行准确的计算。 以前老师也说过,涉及金额、准确计算的都在数据库中使用decimal类型,对应的Java中是BigDecimal类型。 2、结构方法 BigDecimal有几种常用的结构方法 bigdecimal bignum1=new bigdecimal (' 3.4 ); bigdecimal bignum2=new bigdecimal (3; BigDecimal bignum3=null; 3、BigDecimal加减乘除 //加法 bignum3=bignum1.add(bignum2); System.out.println (是指(bignum3); //减法 bignum3=bignum1. subtract (bignum2); System.out.println (差为' bignum3); //乘法 bignum3=bignum1. multiply (bignum2); System.out.println ('乘积为' bignum3); //除法 bignum3=bignum1. divide (bignum 2,3 ); //精确到3位小数 System.out.println ()商为(bignum3); 除法有两个参数。 否则,可能会发生错误。 Java.lang.arithmetic exception : non-terminatingdecimalexpansion; no exact representable decimal res 如果无法整除而出现无限循环小数,就会抛出异常。 因此,第二个参数是设置精确的小数点。 例如,divide (xxxxx

、2 )。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。