java做除法运算,为什么除不开时也会得到整数呢
发布网友
发布时间:2022-04-29 11:04
我来回答
共5个回答
热心网友
时间:2022-06-26 15:35
除法运算/的功能是有区别的。如果相除的两个数都是整数,那么结果也是整数,这叫做取整除法。比如,3/2,结果是1。如果其中有一个是浮点数,那么就是浮点除法,结果是浮点数,比如,3.0/2,结果是1.5.
热心网友
时间:2022-06-26 15:36
这个是默认定义的值的类型是int类型导致的。
如:5/2;此时结果为:2,因为5和2都是默认的int类型。
如果不想得到整形,那么必须定义分子和分母都是double类型才可以。
double a = 2;
double b = 5;
System.out.println(b/a);
结果就是:2.5.
热心网友
时间:2022-06-26 15:36
如果你想要带小数的结果那么在声明的时候就要把变量声明成浮点型
float
=
0.0f
double
=
0.0
补充
因为你声明的5和2都是int型的变量,所以计算出来的结果也是int型的,int型是整型变量,没有小数部分,所以要把它们声明成浮点数(即小数),例如float=5.0f;float
=
2.0f;后边的f表示2.0是float型的单精度浮点数,如果不带f则是默认的double型双精度浮点数。两个float型的数字相除,这样计算的结果也使float型的,所以就会有小数部分出现了
热心网友
时间:2022-06-26 15:37
/**
* 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指
* 定精度,以后的数字四舍五入。
* @param v1 被除数
* @param v2 除数
* @param scale 表示表示需要精确到小数点以后几位。
* @return 两个参数的商
*/
public static double div(double v1, double v2, int scale) {
if (scale < 0) {
throw new IllegalArgumentException(
"The scale must be a positive integer or zero");
}
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP).doubleValue();
}
热心网友
时间:2022-06-26 15:37
因为你运算时用的是int
int计算普通情况得到的也是int
想要小数用浮点型
java做除法运算,为什么除不开时也会得到整数呢
除法运算/的功能是有区别的。如果相除的两个数都是整数,那么结果也是整数,这叫做取整除法。比如,3/2,结果是1。如果其中有一个是浮点数,那么就是浮点除法,结果是浮点数,比如,3.0/2,结果是1.5.
java中为什么除到开方数不除了?
在Java中进行数值操作时,涉及到除法运算时要注意整数类型的除法运算。在整数类型中,如果除数和被除数都是整数,那么结果也会是整数,除数除不尽会截断小数部分,结果是从整数部分得到的。例如,9/2的结果是4,而不是4.5。这一点与其他编程语言不同,例如Python和JavaScript等,这些编程语言的整数类型...
java sql中做除法除不尽时,怎么取整数部分
floor函数截取小数点后面的数字。对于负数和正数函数处理的不一样,对于正数不进行四舍五入,对于负数进行四舍五入。SQL语言,是结构化查询语言Structured Query Language的简称,SQL语言是一种数据库查询和程序设计语言,用于存取数据以及查询,更新和管理关系数据库系统,同时也是数据库脚本文件的扩展名。
java除法
这是因为,如果你的初始数值如5和2是int类型(整数),它们之间的除法运算会保持int的特性,即结果也为整数,没有小数部分。为了得到小数结果,你需要将它们声明为float,如floatVar = 5.0f; 和 floatVar = 2.0f; 这里的".0f" 表示是float类型的单精度浮点数,如果不写f,则默认为double型的...
java中为什么运算值为double可以直接赋值int变量?
java 中不是说不能整除得到的结果就是 double, 这是不存在的 java 中所有四则运算的结果类型只和参与运算的变量类型有关, 和计算结果是无关的 两个 int 类型的参数进行四则运算, 结果一定是 int 不同类型的变量进行四则运算, 计算结果的数据类型有参与运算参数中类型范围较大的决定 ...
关于Java中两个整数相除,有余数就向上取整的问题
在Java编程中,当对两个整数进行除法运算时,如果结果有余数,通常会使用`Math.ceil()`函数来向上取整。以下是一个示例:当你需要对整数8(numberA)除以2(numberB)后向上取整时,可以先将结果转换为浮点数(float numberC = numberA - numberB),这样可以获取到小数部分。例如:float number = (...
java中取余运算符 (%)
在Java编程中,当我们涉及到整数运算时,会用到取整运算符(/)和取余运算符(%). 这两者在处理除法运算时有着显著的差异。当我们使用/进行除法运算时,结果通常只保留整数部分,例如,5除以2等于2,9除以6等于1。然而,当涉及到浮点数时,如5.0/2,结果会是2.5,而9.0/6会得到1.5。这表明,...
在java中的除法计算中 为什么当被除数比除数大时计算结果都为0呢?
一般在进行数学计算的时候,需要将一些数据变为浮点型,例如:public class Hello{ public static void main(String args[]){;System.out.println(9 / 2);} } 这个时候的结果是4,但是实际结果应该是4.5;如要得出正确结果 则需要把其中一个数据变成double或float public class Hello{ public static...
Java中的一个除法的取整问题,如下图我知道是因为取整的原因但是我想清楚...
VALUE = 2147483647 (本人系统MacOS10.15, jdk1.8, 不同系统不同版本jdk下,这个值可能不同,但是相差不大)而你表达式括号内的乘法结果是31536000000,已经远大于int的表示范围了,因此这个计算结果是越界的,错误的,所以最终得到的结果是错误的 把第一个计算数改成long类型的,计算结果就会是正确的了 ...
JAVA 中除法后小数精度问题
为了得到正确的结果,就要进行对位,如果数据类型不一致,就要进行转化。在硬件层面上就是把占用内存少的整型向浮点转换,也就是为这个整型添加额外的字节参与运算,尽管这些字节中都是0,这是数字精度的问题。现在是两个整形数,运算时,计算机认为不需要进行数据类型的转化,所以就得到你见到的结果。