java中整除和浮点除啥区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中整除和浮点除啥区别相关的知识,希望对你有一定的参考价值。

被除数和除数都为整数即为整除,结果也为整数,如果有余数,则忽略余数,比如
5/2结果为2。
被除数和除数只要有一个是浮点数(小数)即为浮点除,结果为浮点数,比如
5.0/2
结果为
2.5
参考技术A /
运算符
用来进行两个数的除法运算并返回一个浮点数。
语法
result
=
number1/number2
result
的数据类型通常是
double

double
变体。
下列情况是例外:
1、如果两个表达式都是
byte、integer
或single表达式时,

result
为一个
single,除非超出正确范围;如果发生这种情况,则产生错误。
2、如果两个表达式都是
byte、integer
或single变体,则
result为一个
single变体,除非已超出正确范围;一旦发生这种情况,则
result为一个包含
double的variant。
3、如果除法运算中有一个
decimal及其它任何数据类型,

result为一个
decimal数据类型。
4、如果有一个或是两个表达式是
null表达式,则
result为
null。如果一个表达式是
empty则作为
0
处理。

MySQL中Decimal类型和Float Double的区别

参考技术A float数值类型用于表示单精度浮点数值,而double数值类型用于表示双精度浮点数值,float和double都是浮点型,而decimal是定点型;
MySQL
浮点型和定点型可以用类型名称后加(M,D)来表示,M表示该值的总共长度,D表示小数点后面的长度,M和D又称为精度和标度,如float(7,4)的
可显示为-999.9999,MySQL保存值时进行四舍五入,如果插入999.00009,则结果为999.0001。
FLOAT和DOUBLE在不指
定精度时,默认会按照实际的精度来显示,而DECIMAL在不指定精度时,默认整数为10,小数为0。
1、CREATE
TABLE
test(f
FLOAT(5,2)
DEFAULT
NULL,d
DOUBLE(5,2)
DEFAULT
NULL,de
DECIMAL(5,2)
DEFAULT
NULL);
2、DESC
test;
3、INSERT
INTO
test(f,d,de)
VALUES(1.23,1.23,1.23);
数据插入都正确
4、INSERT
INTO
test(f,d,de)
VALUES(1.234,1.234,1.23);
数据插入都正确,但是f和d由于标度的限制,舍去了最后一位。
5、INSERT
INTO
test(f,d,de)
VALUES(1.234,1.234,1.234);
数据也插入成功,但是有一个警告提示:
1
queries
executed,
1
success,
0
errors,
1
warnings
Note
Code
:
1265
Data
truncated
for
column
'de'
at
row
1
6、将id1,id2,id3的精度和标度都去掉
ALTER
TABLE
test
MODIFY
f
FLOAT;
ALTER
TABLE
test
MODIFY
d
DOUBLE;
ALTER
TABLE
test
MODIFY
de
DECIMAL;
DELETE
FROM
test;
DESC
test;
7、INSERT
INTO
test(f,d,de)
VALUES(1.234,1.234,1.234);
1
queries
executed,
1
success,
0
errors,
1
warnings
Note
Code
:
1265
Data
truncated
for
column
'de'
at
row
1
f和d的数据正确插入,而de被截断。
浮点数如果不写精度和标度,则会按照实际显示,如果有精度和标度,则会将数据四舍五入后插入,系统不报错,定点数如果不设置精度和标度,刚按照默认的(10,0)进行操作,如果数据超过了精度和标度值,则会警告!
同时,对数据求SUM()时会出现不同的结果,float和double求SUM都会出现很多小数点,而decimal求SUM得到的是精准数值:
8、INSERT
INTO
test(f,d,de)
VALUES(1.234,0.01,1.23);
数据都插入成功
9、SELECT
SUM(f),SUM(d),SUM(de)
FROM
test;
理论上SUM(f)=3.698,SUM(d)=2.474,SUM(de)=3.46,但f,d都出现后面很长的一串浮点小数点。

以上是关于java中整除和浮点除啥区别的主要内容,如果未能解决你的问题,请参考以下文章

java运算疑惑 整型和浮点型混合运算

C语言中,浮点类型和整数类型的区别具体在哪些方面?

浮点型是啥意思

.NET 中十进制、浮点和双精度的区别?

.NET 中十进制、浮点和双精度的区别?

MySQL中Decimal类型和Float Double的区别