decimal

阅读 / 问答 / 标签

为什么在oracle中数据类型是Integer,使用Myeclipse自动映射到pojo类中成了BigDecimal类型?

顶顶顶

在JAVA中 BingDecime b1 = new BigDecimal(Double.toSt

就是把double型数据转换成字符串数据

nvl(cast(do3 as decimal(26,8))/cast(do2 as decimal(26,8)) ,0) 什么意思啊

decimal(26,8),有效长度为26,小数位占8位。 CAST:Oracle中的数据类型转换函数,将某种数据类型的表达式显式转换为另一种数据类型。 NVL( string1, replace_with)   功能:如果string1为NULL,则NVL函数返回replace_with的值,否则返回string1的值,如果两个参数的都为NULL ,则返回NULL。 那这句话意思是就不言而喻了吧,祝你好运,呵呵

BigInteger与BigDecimal

BigInteger - 廖雪峰的网站 在Java中,由CPU原生提供的整型最大范围是64位 long 型整数。使用 long 型整数可以直接通过CPU指令进行计算,速度非常快。 如果我们使用的整数范围超过了 long 型怎么办?这个时候,就只能用软件来模拟一个大整数。 java.math.BigInteger 就是用来表示任意大小的整数。 BigInteger 内部用一个 int[] 数组来模拟一个非常大的整数: 对 BigInteger 做运算的时候,只能使用实例方法,例如,加法运算: 和 long 型整数运算比, BigInteger 不会有范围限制,但缺点是速度比较慢。 也可以把 BigInteger 转换成 long 型: 使用 longValueExact() 方法时,如果超出了 long 型的范围,会抛出 ArithmeticException 。 BigInteger 和 Integer 、 Long 一样,也是不可变类,并且也继承自 Number 类。因为 Number 定义了转换为基本类型的几个方法: 因此,通过上述方法,可以把 BigInteger 转换成基本类型。如果 BigInteger 表示的范围超过了基本类型的范围,转换时将丢失高位信息,即结果不一定是准确的。如果需要准确地转换成基本类型,可以使用 intValueExact() 、 longValueExact() 等方法,在转换时如果超出范围,将直接抛出 ArithmeticException 异常。 如果 BigInteger 的值甚至超过了 float 的最大范围,那么返回的 float 是什么呢? 和 BigInteger 类似, BigDecimal 可以表示一个任意大小且精度完全准确的浮点数。 通过 BigDecimal 的 stripTrailingZeros() 方法,可以将一个 BigDecimal 格式化为一个相等的,但去掉了末尾0的 BigDecimal : 如果一个 BigDecimal 的 scale() 返回负数,例如, -2 ,表示这个数是个整数,并且末尾有2个0。 可以对一个 BigDecimal 设置它的 scale ,如果精度比原始值低,那么按照指定的方法进行四舍五入或者直接截断: 对 BigDecimal 做加、减、乘时,精度不会丢失,但是做除法时,存在无法除尽的情况,这时,就必须指定精度以及如何进行截断: 还可以对 BigDecimal 做除法的同时求余数: 调用 divideAndRemainder() 方法时,返回的数组包含两个 BigDecimal ,分别是商和余数,其中商总是整数,余数不会大于除数。我们可以利用这个方法判断两个 BigDecimal 是否是整数倍数: 在比较两个 BigDecimal 的值是否相等时,要特别注意,使用 equals() 方法不但要求两个 BigDecimal 的值相等,还要求它们的 scale() 相等: 必须使用 compareTo() 方法来比较,它根据两个值的大小分别返回负数、正数和0,分别表示小于、大于和等于。 总是使用 compareTo() 比较两个 BigDecimal 的值,不要使用 equals() ! 如果查看 BigDecimal 的源码,可以发现,实际上一个 BigDecimal 是通过一个 BigInteger 和一个 scale 来表示的,即 BigInteger 表示一个完整的整数,而 scale 表示小数位数: BigDecimal 也是从 Number 继承的,也是不可变对象。

在数学里,英文的significant 和decimal 有什么不同

如何获取BigDecimal的负数

BigDecimal num=new BigDecimal("123");BigDecimal oppositeNum=num.negate();

bigdecimal的长度限制

长度一共能存10位数字。小数由定义的去存储,字段最大99999999.99,(定义的小数会累加在长度内)。varchar类型可以存储多少个汉字,多少个数字。4.0版本以下,比如varchar(100),指的是100字节,如果存放UTF8汉字时,只能存33个(每个汉字3字节)。5.0版本以上,比如varchar(100),指的是100字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放100个。

java的bigdecimal类的用法

Java的BigDecimal类是java.math 包里的一个类,它提供了一些用于执行高精度浮点数计算的方法。由于它可以保持任意精度,所以它可以用于货币计算及其他需要精确结果的场合。下面是一些BigDecimal类的常用方法:add():该方法用于将两个BigDecimal对象相加,返回一个新的BigDecimal对象;subtract()

BigDecimal 型变量该怎么赋值

如:item.setWeight(BigDecimal.valueOf(125.00))

bigdecimal长度包含小数位吗

是包含的,但有时候会对精度精确不准确。因为我们的计算机是二进制的。浮点数没有办法是用二进制进行精确表示。我们的CPU表示浮点数由两个部分组成:指数和尾数,这样的表示方法一般都会失去一定的精确度,有些浮点数运算也会产生一定的误差。如:0.5的二进制表示并非就是精确的0.5。反而最为接近的二进制表示是 0.049999999999999996。这种情况下我们可以用java.math包下面的BigDecimal类,BigDecimal主要用于高精度的数据计算,例如计算金额的时候,还有工程测量计算的时候。BigDecimal的提供了add(),subtract(),multiply()和divide()四种方法,分别为加减乘除。

java中bigdecimal怎么序列化

实现bigdecimal类型转成String类型: BigDecimal bd = new BigDecimal("xxx"); String str = bd.toString(); 扩展:String类型转成bigdecimal类型 String str = "xxx"; BigDecimal bd = new BigDecimal(str);

怎样去掉 java BigDecimal 类对象后面没用的零?

NumberFormat nf = NumberFormat.getInstance(); nf.format(3.300);

java String转bigdecimal 精确两位小数点

String s="125.671";BigDecimal b = new BigDecimal(s); b=b.setScale(2, BigDecimal.ROUND_DOWN); //小数位 直接舍去//b=b.setScale(2, BigDecimal.ROUND_HALF_UP); //四舍五入//BigDecimal add(BigDecimal augend) //BigDecimal subtract(BigDecimal subtrahend)//BigDecimal multiply(BigDecimal multiplicand) //BigDecimal divide(BigDecimal divisor)BigDecimal c = b.add(nwe BigDecimat("763.21"));

java中BigDecimal与Float,Double的区别

精度不同,Float,Double是float,double的封装类BigDecimal主要用于计算金额

BigDecimal对象的值如何修改?

static BigDecimal valueOf(double val) static BigDecimal valueOf(long val) static BigDecimal valueOf(long unscaledVal, int scale)Double.parseDouble(String)

Jquery中怎样使用BigDecimal方法

解决办法:if(a.compareTo(b)==0) 结果是truepublic int compareTo(BigDecimal val)Compares this BigDecimal with the specified BigDecimal.Two BigDecimal objects that are equal in value but have a differentscale (like 2.0 and 2.00) are considered equal by this method.This method is provided in preference to individual methods for each ofthe six boolean comparison operators (<, ==, >, >=, !=, <=).

new bigdecimal的乘法方法是哪个

BigDecimal的除法,需要指定计算答案的精度,你那样肯定会报异常。虽然你知道答案为2.5,但计算机不知道你的精度为多少,会抛异常的。我给你写一段,MathContext mc = new MathContext(2, RoundingMode.HALF_DOWN);//精度为2,舍入模式为大于0.5进1,否则舍弃。 BigDecimal a = new BigDecimal(0.5);BigDecimal b = new BigDecimal(0.2);System.out.println(a.divide(b,mc));

BigDecimal他是什么数据类型?

BigDecimal一共有4个构造方法BigDecimal(int) 创建一个具有参数所指定整数值的对象。BigDecimal(double) 创建一个具有参数所指定双精度值的对象。BigDecimal(long) 创建一个具有参数所指定长整数值的对象。BigDecimal(String) 创建一个具有参数所指定以字符串表示的数值的对象。BigDecimal 的运算方式 不支持 + - * / 这类的运算 它有自己的运算方法BigDecimal add(BigDecimal augend) 加法运算BigDecimal subtract(BigDecimal subtrahend) 减法运算BigDecimal multiply(BigDecimal multiplicand) 乘法运算BigDecimal divide(BigDecimal divisor) 除法运算

java中BigDecimal 的加减乘除和“+”“-”“*”“/”有什么区别

直接在java类中进行运算,可以明显看出,直接运算会产生精度丢失!!!

怎么将null转换为BigDecimal类型

您好,希望以下回答能帮助您有方法 java.math.BigDecimal.doubleValue() BigDecimal a = new BigDecimal(1000); return a.doubleValue();如您还有疑问可继续追问。

怎样将BigDecimal转换成Int

BigDecimal a=new BigDecimal(12.88);int b=a.intValue();System.out.println(b);//b=12;

java中BigDecimal与Float,Double的区别

Float,Double分别是对float和double的封装表示的精度和他们是一样的。但里面有很多有用的方法。。比如Double.praseDouble()等等。。BigDecimal也是对数字类型数据的封装。。但他的精度是任意精度。。即随便多长随便小数点后多少位。。

如何正确显示 BigDecimal 作为一个字符串

integer、int ---> int tinyint、smallint ---> short bigint ---> long decimal、numeric ---> java.math.BigDecimal float ---> float double ---> double char、varchar ---> String boolean、bit ---> boolean date ---> java.sql.Date time ---> java.sql.Time timestamp ---> java.sql.Timestamp blob ---> java.sql.Blob clob ---> java.sql.Clob array ---> java.sql.Array

decimal转换

转换为String 直接截取,再转换为double啊!或者自定义格式!

如何将bigdecimal转换为int

BigDecimal a=new BigDecimal(12.88);int b=a.intValue();System.out.println(b);//b=12;

BigDecimal怎么比大小?

BigDecimal比大小,需要声明两个BigDecimal类型变量b1和b2,调用equals()方法比较大小。BigDecimal a = new BigDecimal("1.00");BigDecmial b = new BigDecimal(1);想比较一下a和b的大小,一般都会用equals。BigDecimal其他情况简介。使用BigDecimal类构造方法传入double类型时,计算的结果也是不精确的。因为不是所有的浮点数都能够被精确的表示成一个double 类型值,有些浮点数值不能够被精确的表示成 double 类型值,因此它会被表示成与它最接近的 double 类型的值。必须改用传入String的构造方法。这一点在BigDecimal类的构造方法注释中有说明。BigDecimal向“最接近的”数字舍入,如果与两个相邻数字的距离相等,则向相邻的偶数舍入。如果舍弃部分左边的数字为奇数,则舍入行为与 ROUND_HALF_UP 相同。

如何判断 bigdecimal 数值是否为非空?

String name=rs.getString("name"); java中的String对应sql中的varchar BigDecimal decimal=new BigDecimal(rs.getInt("num"));不为零。Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大或者更小的数进行运算和处理。float和double只能用来做科学计算或者是工程计算,在商业计算中要用java.math.BigDecimal。BigDecimal所创建的是对象,我们不能使用传统的+、-、*、/等算术运算符直接对其对象进行数学运算,而必须调用其相对应的方法。方法中的参数也必须是BigDecimal的对象。构造器是类的特殊方法,专门用来创建对象,特别是带有参数的对象。扩展资料:BigDecimal一共有4个构造方法:BigDecimal(int) 创建一个具有参数所指定整数值的对象。BigDecimal(double) 创建一个具有参数所指定双精度值的对象。BigDecimal(long) 创建一个具有参数所指定长整数值的对象。BigDecimal(String) 创建一个具有参数所指定以字符串表示的数值的对象。参考资料来源:百度百科-BigDecimal

bigdecimal multiply 怎么保留2位小数

BigDecimal b=new BigDecimal(0);b.multiply(new BigDecimal(0)).setScale(2,BigDecimal.ROUND_HALF_UP);保留两位小数,四舍五入

bigdecimal可以有小数吗

BigDecimal b = new BigDecimal("1.1");if(new BigDecimal(b.intValue()).compareTo(b)==0){System.out.println("b 是整数");}else{System.out.println("b 是小数");}

请问,java里,如何把BigDecimal类型转成Integer

BigDecimal有.intValue() 这个方法

在java中,如何把BigDecimal类型转成Integer?

BigDecimal比Integer大得多,转换的话会有发生异常的可能,所以不建议这么做。1.Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。2.Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。

bigdecimal 判断是否有小数位

BigDecimal b = new BigDecimal("1.1"); if(new BigDecimal(b.intValue()).compareTo(b)==0){ System.out.println("b 是整数"); }else{ System.out.println("b 是小数"); }

BigDecimal和Int类型的转换,以及BigDecimal的常用运算

Int类型转换为bigdecimal类型:先将int转为String,再通过BigDecimal的构造方法去创建 BigDecimal price = new BigDecimal(String str); Bigdecimal类型相加 BigDecimal newDeposit=price.add(oldDecimal); 扩充 add(BigDecimal)BigDecimal对象中的值相加,然后返回这个对象。 subtract(BigDecimal)BigDecimal对象中的值相减,然后返回这个对象。 multiply(BigDecimal)BigDecimal对象中的值相乘,然后返回这个对象。 divide(BigDecimal)BigDecimal对象中的值相除,然后返回这个对象。 toString()将BigDecimal对象的数值转换成字符串。 doubleValue()将BigDecimal对象中的值以双精度数返回。 floatValue()将BigDecimal对象中的值以单精度数返回。 longValue()将BigDecimal对象中的值以长整数返回。 intValue()将BigDecimal对象中的值以整数返回。

BigDecimal 怎么比较大小

当然是使用compareTo:new BigDecimal(1).compareTo(new BigDecimal("1.0"))但是,注意:compareTo 其实也有坑。如果试用:new BigDecimal(1) 与new BigDecimal("1.00"),结果是true. 但是换成 new BigDecimal(1.2).compareTo(new BigDecimal("1.20")),结果就是false.这时问题又来了。所以保险的办法是把小数位去掉再比较。比如*100。都升到个位数。或者统一使用setScale定好小数位。我之前就不知这个坑,搞了好久。

asp.net 中Decimal 和decimal 有什么区别?

客户端验证或者服务器端进行类型转换时判断 。也可以利用正则表达式,祝你好运

decimal 是哪个键

decimal num = 36270449.32TextBox1.Text = string.Format("", num / 10000);数据的类型为double,数据库字段为float,两个只有两位小数的数字相减,结果怎么会有十多位小数喔?这个是精度问题。

sql语句 decimal(18,0)什么意思

1、sql语句 decimal(18,0)的意思是:可储存的最大十进位数总数为18,小数位数为0。2、Decimal(n,m)的含义如下:n表示可储存的最大十进位数总数,小数点左右两侧都包括在内,最小的有效位数是 1 ,最大的有效位数是 38 。m表示小数点右侧所能储存的最大十进位数。m和n之间要满足0≤m≤n的关系,只有在指定了有效位数时,才能指定小数位数。Decimal为SQL Server、MySql等数据库的一种数据类型,不属于浮点数类型,可以在定义时划定整数部分以及小数部分的位数。Decimal(n,m)表示数值中共有n位数,其中整数(n-m)位,小数m位。例:decimal(10,6),数值中共有10位数,其中整数占4位,小数占6位。

数据类型decimal(12,4)表示什麼意思?

表示数据的长度是12位,精度为4

如何制定Decimal的精度

格式说明符名称说明C 或 c货币数字转换为表示货币金额的字符串。转换由用于格式化数字的 NumberFormatInfo 对象的货币格式信息控制。精度说明符指示所需的小数位数。如果省略精度说明符,则使用 NumberFormatInfo 给定的默认货币精度。D 或 d十进制数只有整型才支持此格式。数字转换为十进制数字 (0-9) 的字符串,如果数字为负,则前面加负号。精度说明符指示结果字符串中所需的最少数字个数。如果需要的话,则用零填充该数字的左侧,以产生精度说明符给定的数字个数。E 或 e科学计数法(指数)数字转换为-d.dddE+ddd或-d.ddde+ddd形式的字符串,其中每个d表示一个数字 (0-9)。如果该数字为负,则该字符串以减号开头。小数点前总有一个数字。精度说明符指示小数点后所需的位数。如果省略精度说明符,则使用默认值,即小数点后六位数字。格式说明符的大小写指示在指数前加前缀E还是e。指数总是由正号或负号以及最少三位数字组成。如果需要,用零填充指数以满足最少三位数字的要求。F 或 f固定点数字转换为-ddd.ddd形式的字符串,其中每个d表示一个数字 (0-9)。如果该数字为负,则该字符串以减号开头。精度说明符指示所需的小数位数。如果忽略精度说明符,则使用 NumberFormatInfo 给定的默认数值精度。G 或 g常规根据数字类型以及是否存在精度说明符,数字会转换为固定点或科学记数法的最紧凑形式。如果精度说明符被省略或为零,则数字的类型决定默认精度,如下表所示。Byte 或 SByte:3Int16 或 UInt16:5Int32 或 UInt32:10Int64 或 UInt64:19Single:7Double:15Decimal:29如果用科学记数法表示数字时指数大于 -5 而且小于精度说明符,则使用固定点表示法;否则使用科学记数法。如果要求有小数点,并且忽略尾部零,则结果包含小数点。如果精度说明符存在,并且结果的有效数字位数超过指定精度,则通过舍入删除多余的尾部数字。使用科学记数法时,如果格式说明符是G,结果的指数带前缀E;如果格式说明符是g,结果的指数带前缀e。上述规则有一个例外:如果数字是 Decimal 而且省略精度说明符时。在这种情况下总使用固定点表示法并保留尾部零。N 或 n数字数字转换为-d,ddd,ddd.ddd形式的字符串,其中每个d表示一个数字 (0-9)。如果该数字为负,则该字符串以减号开头。小数点左边每三个数字之间插入一个千位分隔符。精度说明符指示所需的小数位数。如果忽略精度说明符,则使用 NumberFormatInfo 给定的默认数值精度。P 或 p百分比数字转换为由 NumberFormatInfo.PercentNegativePattern 属性或 NumberFormatInfo.PercentPositivePattern 属性定义的、表示百分比的字符串。如果数字为负,则产生的字符串由 PercentNegativePattern 定义并以负号开头。已转换的数字乘以 100 以表示为百分比。精度说明符指示所需的小数位数。如果省略精度说明符,则使用 NumberFormatInfo 给定的默认数值精度。R 或 r往返过程往返过程说明符保证转换为字符串的数值再次被分析为相同的数值。使用此说明符格式化数值时,首先使用常规格式对其进行测试:Double 使用 15 位精度,Single 使用 7 位精度。如果此值被成功地分析回相同的数值,则使用常规格式说明符对其进行格式化。但是,如果此值未被成功地分析为相同数值,则它这样格式化:Double 使用 17 位精度,Single 使用 9 位精度。虽然精度说明符可以追加到往返过程格式说明符,但它将被忽略。使用此说明符时,往返过程优先于精度。此格式仅受浮点型支持。X 或 x十六进制数数字转换为十六进制数字的字符串。格式说明符的大小写指示对大于 9 的十六进制数字使用大写字符还是小写字符。例如,使用X产生ABCDEF,使用x产生abcdef。精度说明符指示结果字符串中所需的最少数字个数。如果需要的话,则用零填充该数字的左侧,以产生精度说明符给定的数字个数。只有整型才支持此格式。2、使用System.Math.Round函数可以指定小数位数。

decimal在java中是什么类型

decimal在java中的用BigDecimal表示的。BigDecimal:不可变的、任意精度的有符号十进制数。BigDecimal 由任意精度的整数非标度值 和 32 位的整数标度 (scale) 组成。如果为零或正数,则标度是小数点后的位数。如果为负数,则将该数的非标度值乘以 10 的负 scale 次幂。因此,BigDecimal 表示的数值是 (unscaledValue × 10-scale)。 BigDecimal 类提供以下操作:算术、标度操作、舍入、比较、哈希算法和格式转换。

decimal在mysql中是什么类型

decimal是数字数据类型中的一种,属于定点数其标准格式是DECIMAL(M,D),其中M为长度,D为小数位数,其精度要比single浮点数和double浮点数为高。对于那些如银行存款这类精度要求的项目可以使用decimal类型,当然系统处理该类型的开销要比浮点数为高。请注意decimal在不指定精度的情况下将使用默认精度整数10位小数0位也就是10位整数。

关于decimal类型计算的问题

decimal.Ceiling(a)

怎么记忆float double decimal的取值范围

float是单精度浮点型,范围是0-8的数位。double 是双精度浮点型,范围在0-16的数位。Decimal 数据类型 Decimal 变量存储为 96 位(12 个字节)无符号的整型形式,并除以一个 10 的幂数。这个变比因子决定了小数点右面的数字位数,其范围从 0 到 28。够不够详细!!

mysql decimal能为负吗

可以为负值。Decimal为SQL Server、MySql等数据库的一种数据类型,不属于浮点数类型,可以在定义时划定整数部份以及小数部分的位数。使用精确小数类型不仅能够保证数据计算更为精确,还可以节省储存空间,例如百分比使用decimal(4,2)即可。存储数据范围是:-10^38~10^38-1 的固定精度和小数位的数字。一个decimal类型的数据占用了2~17个字节。

mysql中decimal和double的区别

实数是带有小数部分的数字。然而,它们不只是为了存储小数部分,也可以使用DEClMAL 存储比 BIGINT还大的整数。 MySQL 既支持精确类型,也支持不精确类型。FLOAT 和 DOUBLE 类型支持使用标准的浑点运算进行近似计算。如果需要知道浮点运算是怎么计算的,则需要研究所使用的平台的浮点数的具体实现。DECIMAL 类型用于存储精确的小数。在 MySQL 5.0 和更高版本, DECIMAL 类型支持精确 计算。 MySQL 4.1 以及更早版本则使用浮点运算来实现 DECIAML 的计算,这样做会因为 精度损失导致一些奇怪的结果。在这些版本的 MySQL 中,DEClMAL 只是一个"存储类型"。因为 CPU 不支持对 DEClMAL 的直接计算,所以在 MySQL 5.0 以及更高版本中, MySQL 服务器自身实现了 DECIMAL 的高精度计算。相对而言, CPU 直接支持原生浮点计算,所 以浮点运算明显更快。浮点和 DECIMAL 类型都可以指定精度。对于 DECIMAL 列,可以指定小数点前后所允许的 最大位数。这会影响列的空间消耗。 MySQL 5.0 和更高版本将数字打包保存到一个二进 制字符串中(每 4个字节存 9个数字)。例如, DEClMAL(18 ,9)小数点两边将各存储 9个 数字,一共使用 9 个字节:小数点前的数字用 4 个字节,小数点后的数字用 4 个字节, 小数点本身占 1个字节。MySQL 5.0 和更高版本中的 DEClMAL 类型允许最多 65个数字。而早期的 MySQL 版本中 这个限制是254个数字,并且保存为未压缩的字符串(每个数字一个字节)。然而,这些(早 期)版本实际上并不能在计算中使用这么大的数字,因为 DECIMAL 只是一种存储格式: 在计算中 DEClMAL 会转换为 DOUBLE 类型。有多种方法可以指定浮点列所需要的精度,这会使得 MySQL 悄悄选择不同的数据类型, 或者在存储时对值进行取舍。这些精度定义是非标准的,所以我们建议只指定数据类型, 不指定精度。浮点类型在存储同样范围的值时,通常比 DECIMAL 使用更少的空间。 FLOAT 使用 4个字 节存储。 DOUBLE 占用8个字节,相比 FLOAT有更高的精度和更大的范围。和整数类型一样, 能选择的只是存储类型 IMySQL 使用 DOUBLE 作为内部浮点计算的类型。因为需要额外的空间和计算开销,所以应该尽量只在对小数进行精确计算时才使用DECIMAL一一例如存储财务数据。但在数据量比较大的时候,可以考虑使用 BIGINT 代替DECIMAL,将需要存储的货币单位根据小数的位数乘以相应的倍数即可。假设要存储财务数据精确到万分之一分,则可以把所有金额乘以一百万,然后将结果存储在 BIGI町里,这样可以同时避免浮点存储计算不精确和 DECIMAL 精确计算代价高的问题。

MySQL文档说`decimal` 的最大位数是 `65`,什么意思?

第一次看到decimal(m,d)一头雾水,知道肯定是个范围,但是不知道范围的规则,看了一些文章发现说的都不是很明白,于是去官网看了下。大概意思是这样的:decimal(m,d)m是数字的最大位数,他的范围是从1-65;d是小数点后的位数,他的范围是0-30,并且不能大于m。如果m被省略了,那么m的值默认为10,如果d被省略了,那么d的值默认为0.举例表示:1、decimal(5,2) 所指代的范围是-999.99~999.99 数字的最大位数是5位,小数点右侧是2位,即有两位小数。2、decimal(7,6)所指代的范围是-9.999999~9.999999 数字的最大位数是7位,小数点右侧是6位,即有六位小数。字的位数和所占字节数,有以下对应表:小数点左侧位数数据结构所占的字节数1–2 1 3–4 2 5–6 3 7–9 4 举例表示:decimal(18,9)小数位左右各为9位数,此数据所占以上表格即为4字节整数位,4字节小数位;decimal(20,6)整数位为14位,小数位位6位,此数据需要4个字节给整数位的9位和3字节给另外的5位整数,另外小数位需要3个字节,总共是4+3+3 = 11个字节。decimal不能够存储以“+”、“-”和“0”开头的数据,如果是“+”开头momo默认存为正数,而“-”开头则不存储具体的对decimal的定义,可以在mysql源码中的strings/decimal.c文件中的decimal2bin()函数查看。

为什么数据库涉及到钱要用decimal啊

因为涉及到钱会产生很多小数位decimal(18,0)18是定点精度,0是小数位数。最大精度38,就是说可以精确到小数点后38位

decimal,float和double的区别

float 单精度浮点 32bit,double 双精度浮点64bit,decimal是高精度 128bit,浮点型。float double 是 基本类型(primitive type),decimal不是。float 有效数字7位,范围 ±1.5 × 10Eu221245 to ±3.4 × 10E38double 有效数字15/16 位,范围 ±5.0 × 10 Eu2212324 to ±1.7 × 10E308decimal 有效数字 28/29 位,范围 ±1.0 × 10Eu221228 to ±7.9 × 10E28( E -- 下接几次方)decimal的有效位数很大,达到了28位,但是表示的数据范围却比float和double类型小。使用的时候会对计算时的性能有影响。常数写法:float f = 12.3F; (带F)double x=12.3; (不带就是double)decimal d = 12.30M; (带M)浮点数运算会有精度损失问题,有精度损失时程序不会报告,要程序员自己注意。

SQL语言中 [decimal] (28,6) 是什么意思?不用SQL语言怎么实现?

decimal(a,b)a指定指定小数点左边和右边可以存储的十进制数字的最大个数,最大精度38。b指定小数点右边可以存储的十进制数字的最大个数。小数位数必须是从0到a之间的值。默认小数位数是0。decimal(28,6)就是说小数点前可以有28位,小数点后可以有6位

decimal对应java什么类型

java.math.BigDecimal

sqlserver decimal可以为负吗

可以为负值。Decimal为SQL Server、MySql等数据库的一种数据类型,不属于浮点数类型,可以在定义时划定整数部份以及小数部分的位数。使用精确小数类型不仅能够保证数据计算更为精确,还可以节省储存空间,例如百分比使用decimal(4,2)即可。存储数据范围是:-10^38~10^38-1 的固定精度和小数位的数字。一个decimal类型的数据占用了2~17个字节。

decimal(6,2)是什么意思?

decima(6,2)表示总长度为6,小数位数占二位的数值。对SQL Server而言,Decimal可用来保存具有小数点而且数值确定的数值,它不像float和real是用来保存近似值。对于Visual Basic而言,Decimal是其版本5新增的数据类型,目的是满足进行精密数学运算的需求,它是范围最大、最精确的浮点数类型。对于Excel而言,DECIMAL()函数用于按给定基数将数字的文本表示形式转换成十进制数。扩展资料数据精度Decimal变量存储为96位(12个字节)无符号的整型形式带符号的整型形式,并除以一个10的幂数。这个变比因子决定了小数点右面的数字位数,其范围从0到28变比因子为0(没有小数位)的情形下,最大的可能值为+/-79,228,162,514,264,337,593,543,950,335。而在有28个小数位的情况下,最大值为+/-7.9228162514264337593543950335,而最小的非零值为+/-0.0000000000000000000000000001。

英文的significant 和decimal 有什么不同

这两个单词不同太多了,我猜你要问的是significant figure和decimal places, 这两个才有可比性。significant figure是多少位的精准位数,比如2位significant figures,那么187.324就约等于190,三位s.f.的话就是187, 四位是187.3decimal place就是精准到小数的多少位了,精确到2位的d.p.的话187.3249就约等于187.32, 1位d.p.就是187.3

decimal 在JAVA里怎么表示?

double或者float如果要控制小数点,看看格式化类哈。

sql语句 decimal(18,0)什么意思

decimal是数据类型.18位.没有小数位.

decimal在java中是什么类型

decimal在java中的用BigDecimal表示的。BigDecimal:不可变的、任意精度的有符号十进制数。BigDecimal由任意精度的整数非标度值和32位的整数标度(scale)组成。如果为零或正数,则标度是小数点后的位数。如果为负数,则将该数的非标度值乘以10的负scale次幂。因此,BigDecimal表示的数值是(unscaledValue×10-scale)。BigDecimal类提供以下操作:算术、标度操作、舍入、比较、哈希算法和格式转换。

decimal(10,2)是什么意思?

decimal(10,2)中的“2”表示小数部分的位数,如果插入的值未指定小数部分或者小数部分不足两位则会自动补到2位小数,若插入的值小数部分超过了2为则会发生截断,截取前2位小数。“10”指的是整数部分加小数部分的总长度,也即插入的数字整数部分不能超过“10-2”位,否则不能成功插入,会报超出范围的错误。介绍Decimal为SQL Server、MySql等数据库的一种数据类型,不属于浮点数类型,可以在定义时划定整数部分以及小数部分的位数。使用精确小数类型不仅能够保证数据计算更为精确,还可以节省储存空间,例如百分比使用decimal(4,2)即可。

SQLSERVER 里的 DECIMAL 是什么意思

SQL Server数据库中,Decimal是数据类型,不属于浮点数类型,可以在定义时划定整数部分以及小数部分的位数。使用精确小数类型不仅能够保证数据计算更为精确,还可以节省储存空间,例如百分比使用decimal(4,2)即可。存储数据范围是:-10^38~10^38-1 的固定精度和小数位的数字。一个decimal类型的数据占用了2~17个字节。

mysql decimal可以为负数吗

可以为负值。Decimal为SQL Server、MySql等数据库的一种数据类型,不属于浮点数类型,可以在定义时划定整数部dao份以及小数部分的位数。使用精确小数类型不仅能够保证数据计算更为精确,还可以节省储存空间,例如百分比使用decimal即可,存储数据范围是:-^8~^8- 的固定精度和小数位的数字,一个decimal类型的数据占用了~7个字节。扩展资料:一单位的统计服务器投入使用后,运行速度较慢,经排查原因,发现SQLServer中的内存选项(Memory)仅为安装缺省值16MB(而服务器有128MB的物理内存)在将;内存值调整为100MB时却误将其改成了1000MB,使得SQL Server服务不能启动,统计数据库打不开,也就不能再次进入SQL Enterprise Manager修改内存设置了。既然SQL Server可用内存设置值远远大于物理内存,造成SQLServer服务不能启动,何不扩充虚拟内存呢?经设法将机器虚拟内存扩充至1000MB并重新启动,SQL Server数据库成功启动,问题迎刃而解。

SQLSERVER 里的 DECIMAL(5,2) 是什么意思

结果包含5位整数,2位小数

数据库建表用的decimal类型,前端传的是long类型有什么问题

关于mysql数据库的数据类型numeric和decimaldecimal(numeric ) 同义,用于精确存储数值decimal 数据类型最多可存储 38 个数字,所有数字都能够放到小数点的右边。decimal 数据类型存储了一个准确(精确)的数字表达法;不存储值的近似值。定义 decimal 的列、变量和参数的两种特性如下:p 小数点左边和右边数字之和,不包括小数点。如 123.45,则 p=5,s=2。 指定精度或对象能够控制的数字个数。s 指定可放到小数点右边的小数位数或数字个数。p 和 s 必须遵守以下规则:0 <= s <= p <= 38。numeric 和 decimal 数据类型的默认最大精度值是 38。在 Transact-SQL 中,numeric 与 decimal 数据类型在功能上等效。当数据值一定要按照指定精确存储时,可以用带有小数的 decimal 数据类型来存储数字。转换 decimal 和 numeric 数据对于 decimal 和 numeric 数据类型,Microsoft? SQL Server? 将精度和小数位数的每个特定组合看作是不同的数据类型。例如,decimal(5,5) 和 decimal(5,0) 被当作不同的数据类型。在 Transact-SQL 语句中,带有小数点的常量自动转换为 numeric 数据值,且必然使用最小的精度和小数位数。例如,常量 12.345 被转换为 numeric 值,其精度为 5,小数位为 3。从 decimal 或 numeric 向 float 或 real 转换会导致精度损失。从 int、smallint、tinyint、float、real、money 或 smallmoney 向 decimal 或 numeric 转换会导致溢出。默认情况下,在将数字转换为较低精度和小数位数的 decimal 或 numeric 值时,SQL Server 使用舍入法。然而,如果 SET ARITHABORT 选项为 ON,当发生溢出时,SQL Server 会出现错误。若仅损失精度和小数位数,则不会产生错误。

decimal允许为0吗

不可以。decimal是一个数字数据类型,表示带有小数点的数字,其取值范围为-79,228,162,514,264,337,593,543,950,335至79,228,162,514,264,337,593,543,950,335,而不支持o。

decimal(10,2)是什么意思

decimal(10,2)中的“2”表示小数部分的位数,如果插入的值未指定小数部分或者小数部分不足两位则会自动补到2位小数,若插入的值小数部分超过了2为则会发生截断,截取前2位小数。“10”指的是整数部分加小数部分的总长度,也即插入的数字整数部分不能超过“10-2”位,否则不能成功插入。下面是decimal对应表,可以用来进行对照:Decimal为SQL Server、MySql等数据库的一种数据类型,不属于浮点数类型,可以在定义时划定整数部分以及小数部分的位数。使用精确小数类型不仅能够保证数据计算更为精确,还可以节省储存空间,例如百分比使用decimal(4,2)即可。

C#中的decimal怎么保留两位小数

在C语言中编写如下程序:1、decimal d = 0.234M;2、 *保留小数后两位*(注释)3、d=Math.Round(d,2);最终结果为:d=0.23,即为保留两位小数。Decimal为SQL Server、MySql等数据库的一种数据类型,不属于浮点数类型,可以在定义时划定整数部分以及小数部分的位数。使用精确小数类型不仅能够保证数据计算更为精确,还可以节省储存空间。扩展资料:Decimal数据类型的位数:p(有效位数)可储存的最大十进位数总数,小数点左右两侧都包括在内。有效位数必须是1至最大有效位数38之间的值。预设有效位数是18。s(小数位数)小数点右侧所能储存的最大十进位数。小数位数必须是从0到p的值。只有在指定了有效位数时,才能指定小数位数。预设小数位数是 0;因此0≤s≤p。最大储存体大小会随著有效位数而不同。Decimal(n,m)表示数值中共有n位数,其中整数n-m位,小数m位。例:decimal(10,6),数值中共有10位数,其中整数占4位,小数占6位。例:decimal(2,1),此时,插入数据“12.3”、“12”等会出现“数据溢出错误”的异常;插入“1.23”或“1.2345...”会自动四舍五入成“1.2”;插入“2”会自动补成“2.0”,以确保2位的有效长度,其中包含1位小数。当用int类型会有溢出时,可以用decimal类型进行处理,结果可以用convert或cast进行转换。参考资料来源:百度百科-Decimal

decimal是什么数据类型

  1、在C#里decimal表示128位数据类型,与double相比,decimal类型具有更高的精度和更小的范围,适合于财务和货币计算。   2、Decimal数据类型可以在Visual Studio编辑器中使用,只要在一个浮点类型的值后加一个大写或小写的M,则编辑器会认为这个浮点类型的值是一个Decimal类型。   3、这种128位高精度十进制数表示法通常用在财务计算中。要注意的是,在.NET环境中,计算该类型的值会有性能上的损失,因为它不是基本类型。

“decimal”是什么类型的MySQL?

Decimal 变量存储为 96 位无符号的整型形式,并除以一个 10 的幂数。变比因子为 0的情形下,最大的可能值为 +/-79,228,162,514,264,337,593,543,950,335。在有 28 个小数位的情况下,最大值为 +/-7.9228162514264337593543950335,而最小的非零值为 +/-0.0000000000000000000000000001。Decimal 数据类型只能在 Variant中使用,不能声明一变量为 Decimal 的类型。SQL表中用的数据有整型,小数型,等等。decimal就是小数型,即此列允许小数的输入。和浮点型差不多,浮点数是直接把小数转化为二进制,二多数小数转化为二进制是有误差的。

decimal是什么数据类型?

decimal是MySQL中存在的精准数据类型。MySQL中的数据类型有:float,double等非精准数据类型和decimal这种精准。区别:float,double等非精准类型,在DB中保存的是近似值。Decimal则以字符串的形式保存精确的原始数值。扩展资料对SQL Server而言,decimal和numeric视为相同的类型,它们可用来保存具有小数点而且数值确定的数值。它们不像float和real是用来保存近似值。此类型的列其声明方式为decima[(p[,s])]或numericl[(p[,s])]。其中p是此数值全部的位数,含小数部分但不包括小数点,s则是小数的位数。p值称为此数值的精确度,例如:decimal(10,3)表示共有7位整数3位小数,此例的精确度为10位。此类型的列可保存的值范围为1038-1到-1038-1之间。其占用存储空间依精确度不同而不同,下表给出Decimal类型变量精确度和占用空间的关系。

decimal是什么类型

十进制小数,他的精度高,而且没有误差。Decimal是一个英语单词,为名词、形容词。作名词时意为“小数”。作形容词时意为“小数的;十进位的 ”。点分十进制,全称点分(点式)十进制表示法(英:Dotted decimal notation),是IPv4的IP地址标识方法,每一组数字都是十进制,组与组之间用".(点)"分隔,因此称为“点分十进制”,例如IP地址123.123.123.123;此种表示法有区别于IPv6的冒分十六进制,即冒分十六进制(也叫冒号十六进制)是用冒号分隔每一组数,每组数用16进制表示,比如IP地址3FFE:FFFF:7654:FEDA:1245:BA98:3210:4562。扩展资料:把点分十进制的ip地址转换为二进制的方法为:四段,每段0到255,8位二进制,0就是00000000,255就是11111111。8位二进制最高位128,接着是64,接着32,接着是16,一直到最后一位是2的0次方,也就是1。0到255的任意一个数要化成8位二进制,只要找出最大的包含的位,这个位上置1,减去这个位后的数再同理找最大包含的位。比如100,它包含的最大位是64,那么128位置0,64位置1,减去64后剩下36,36包含32,所以32的位置1,剩下4,所以16和8的位置0,4包含4,所以4的位置1,剩下已经是0了,2和1的位置0。

decimal是什么数据类型?

decimal是MySQL中存在的精准数据类型。MySQL中的数据类型有:float,double等非精准数据类型和decimal这种精准。区别:float,double等非精准类型,在DB中保存的是近似值。Decimal则以字符串的形式保存精确的原始数值。扩展资料对SQL Server而言,decimal和numeric视为相同的类型,它们可用来保存具有小数点而且数值确定的数值。它们不像float和real是用来保存近似值。此类型的列其声明方式为decima[(p[,s])]或numericl[(p[,s])]。其中p是此数值全部的位数,含小数部分但不包括小数点,s则是小数的位数。p值称为此数值的精确度,例如:decimal(10,3)表示共有7位整数3位小数,此例的精确度为10位。此类型的列可保存的值范围为1038-1到-1038-1之间。其占用存储空间依精确度不同而不同,下表给出Decimal类型变量精确度和占用空间的关系。

decimal什么意思?

decimal是MySQL中存在的精准数据类型。MySQL中的数据类型有:float,double等非精准数据类型和decimal这种精准。区别:float,double等非精准类型,在DB中保存的是近似值。Decimal则以字符串的形式保存精确的原始数值。扩展资料对SQL Server而言,decimal和numeric视为相同的类型,它们可用来保存具有小数点而且数值确定的数值。它们不像float和real是用来保存近似值。此类型的列其声明方式为decima[(p[,s])]或numericl[(p[,s])]。其中p是此数值全部的位数,含小数部分但不包括小数点,s则是小数的位数。p值称为此数值的精确度,例如:decimal(10,3)表示共有7位整数3位小数,此例的精确度为10位。此类型的列可保存的值范围为1038-1到-1038-1之间。其占用存储空间依精确度不同而不同,下表给出Decimal类型变量精确度和占用空间的关系。

decimal什么意思

decimal英音:["desimu0259l]美音:["du025bsu026am!] 形容词 a. 1.十进位的;小数的United States money has a decimal system. 美国货币采用十进制。 名词 n. 1.小数[C]0.3 is a decimal. 0.3是一个小数。

c#中的decimal是什么,麻烦用通俗的话说

精度最高的浮点数,就是小数点后最精确的

decimal 和decimal? 有什么区别

有什么不同吗?明明一样的英文

C#中怎么定义decimal

decimal myDecimal = 12.12M;Console.WriteLine(myDecimal);

C中如何定义decimal类型

decimal rate = 0.1m;加上m或M后缀就好

decimal和double的区别

decimal_百度翻译 decima英 [u02c8desu026aml] 美 [u02c8du025bsu0259mu0259l] adj.十进位的,小数的; n.小数; [其他]复数:decimals fanyi.baidu.com double_百度翻译 double英 [u02c8du028cbl] 美 [u02c8du028cbu0259l] adj.双的; 两倍的; 两面派的; 双人用的; vt.使加倍; 把…对折; 重复; vi.加倍,加倍努力; 快步走; [例句]The government committed a double blunder政府重蹈覆辙。[其他]第三人称单数:doubles 复数:doubles 现在分词:doubling 过去式:doubled 过去分词:doubled fanyi.baidu.com

DECIMAL字段字节计算

最近在看《深入浅出MySQL》一书,看到了数值类型那一节。里面介绍了一些常用字段的相关信息,如字节长度、最大值、最小值等。 当看到 DECIMAL 字段时,它的字节数是 M+2 ,这个让我很不解,是为什么? DECIAML 与 FLOAT 和 DOUBLE 的存储方式不同。 FLOAT 和 DOUBLE 是用二进制存储数据的,所以会有部分精度问题。 DECIAML 是用字符串的方式存储的,所以它不存在精度问题,那么它的长度就是存储字节的长度。 那么问题来了,例如: DECIMAL(5,2) 的最大值是 999.99 ,那么总长度也就是 5+1 ,又为什么是 5+2 呢? 第二天工作的时候,帮忙拉取一个数据,就手动操作了一把,其中两个数据要相加一下。当我看到那个 + 号时,我想通了。 DECIMAL 也是有符号位的,而当时我只看的最大值,如果看最小值的话,就能够想通为什么是 M+2 了。 所以最终 DECIMAL 的长度计算方式是:1个字节的符号位 + 一个字节的小数点位 + 纯数字的长度(M) = 1 + 1 + M = M + 2。 困点得以解决,这种思考是被人直接告知要更加难得的,问题虽小,值得纪念。

如何将string类型转换为decimal类型

decimal是一种非常适合来记录金额的类型。应该是默认精确到小数点后两位的,如果string的值精度过高,自然会四舍五入。如果是在数据库中的话,可以设置decimal精度的 decimal(18,2)

SQL中DECIMAL(7,2)是什么意思(mysqldecimal(6,2)是什么意思)

Decimal在sqlserver里是精确值类型,精度38,Decimal类型具有更高的精度和更小的范围,它适合于财务和货币计算。它可避免浮点数计算误差,Decimal是以字符串的形式保存精确的原始数值。

C#里“decimal”什么意思,要怎么用呢?

Decimal 数据类型 Decimal 变量存储为 96 位(12 个字节)无符号的整型形式,并除以一个 10 的幂数。这个变比因子决定了小数点右面的数字位数,其范围从 0 到 28。变比因子为 0(没有小数位)的情形下,最大的可能值为 +/-79,228,162,514,264,337,593,543,950,335。而在有 28 个小数位的情况下,最大值为 +/-7.9228162514264337593543950335,而最小的非零值为 +/-0.0000000000000000000000000001。注意 此时,Decimal 数据类型只能在 Variant中使用,也就是说,不能声明一变量为 Decimal 的类型。不过可用 Cdec 函数,创建一个子类型为 Decimal 的 Variant。
 1 2  下一页  尾页