导航:首页 > 编程语言 > javadouble取整

javadouble取整

发布时间:2022-09-23 08:39:50

java中double四舍五入问题

(1)首先我们想到用先乘以100取整后再除以100.0这种做法:
System.out.println(Math.round(4.015*100)/100.0);
执行结果为4.01,显然没有达到我们想要的结果。

(2)那用java.text.DecimalFormat呢?
System.out.println(new java.text.DecimalFormat("0.00").format(4.015));
System.out.println(new java.text.DecimalFormat("0.00").format(4.025));
执行结果都为4.02。

(3)用java.math.BigDecimal.
Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。
提供用于执行任意精度整数算法 (BigInteger) 和任意精度小数算法 (BigDecimal) 的类。
double abc = 4.015; //4.025
System.out.println(new java.math.BigDecimal(abc).setScale(2,java.math.BigDecimal.ROUND_HALF_UP).doubleValue());

结果:4.01 (当使用4.025时结果为4.03)
看来还是达不到效果。

(4)用下面的方法:
System.out.println(Math.round(4.015*100 + 0.5)/100.0);

Ⅱ Java中怎么把浮点数转变成整数只保留整数部分

通过转换为字符串,再截取整数部分:

float a = 1.1f;//定义一个浮点变量a

String str = String.valueOf(a);//浮点变量a转换为字符串str

int idx = str.lastIndexOf(".");//查找小数点的位置

String strNum = str.substring(0,idx);//截取从字符串开始到小数点位置的字符串,就是整数部分

int num = Integer.valueOf(strNum);//把整数部分通过Integer.valueof方法转换为数字

展资料:

Java的浮点类型有两种:float和double。

Java的浮点类型有固定的表数范围和字段长度,字段长度和表数范围和机器无关,double类型代表双精度浮点数,float类型代表单精度浮点数。

Java的浮点数遵循IEEE754标准,采用二进制数据的科学计数法来表示浮点数,对于float型数值,第1位是符号位,接下里8位表示指数,再接下来的23位表示尾数;对于double类型数值,第一位也是符号位,接下来的11位表示指数,再接下来的52位表示尾数。

Ⅲ java中double型如何取整

有float类型的

向上取整:Math.ceil() //只要有小数都+1
向下取整:Math.floor() //不取小数
四舍五入:Math.round() //四舍五入

Ⅳ 关于java double 小数向上取整处理

public static double getCeil(double d,int n){
BigDecimal b = new BigDecimal(String.valueOf(d));
b = b.divide(BigDecimal.ONE,n,BigDecimal.ROUND_CEILING);
return b.doubleValue();
}

Ⅳ java中如何取整

通过(int)方式进行取整,(int)是强转,强制把其他类型转换成整型。

语法:

int b =(int)浮点型变量;

例如:

doublea=1.22;
intb=(int)a;//强转double为整型。,取整,结果为1

Ⅵ 如何完美获得一个double值的整数部分

使用强制类型转换,强制舍去小数部分。例如double a=3.14; int b= (int)a;使用math.h的标准函数。double floor(double x),double ceil(double x),使用floor函数。floor(x)返回的是小于或等于x的最大整数。

浮点运算就是实数运算,因为计算机只能存储整数,所以实数都是约数,这样浮点运算是很慢的而且会有误差。大多数机器都是32位的,也就是说32位都用来表示整数的话,那么对于无符号整数就是0 到 2^32-1,对于有符号的话就是-2^31 到 2^31-1。



相关信息

当我们用不同的电脑计算圆周率时,会发现一台电脑的计算较另一台来讲结果更加精确。或者我们在进行枪战游戏的时候,当一粒子弹击中墙壁时,墙上剥落下一块墙皮,同样的场面在一台电脑上的表现可能会非常的呆板、做作;而在另外一台电脑上就会非常生动形象。

甚至与我们在现实中看到的所差无几。这都是浮点运算能力的差异导致的。如果是实数的话,就不是这样了,机器有两种办法表示实数,一种是定点,就是小数点位置是固定的,一种是浮点,就是小数点位置不固定,计算方法也比较麻烦,通常会比整数运算代价大很多。

Ⅶ java怎么把double四舍五入

(1)首先我们想到用先乘以100取整后再除以100.0这种做法:
System.out.println(Math.round(4.015*100)/100.0);
执行结果为4.01,显然没有达到我们想要的结果。

(2)那用java.text.DecimalFormat呢?
System.out.println(new java.text.DecimalFormat("0.00").format(4.015));
System.out.println(new java.text.DecimalFormat("0.00").format(4.025));
执行结果都为4.02。

(3)用java.math.BigDecimal.
Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。
提供用于执行任意精度整数算法 (BigInteger) 和任意精度小数算法 (BigDecimal) 的类。
double abc = 4.015; //4.025
System.out.println(new java.math.BigDecimal(abc).setScale(2,java.math.BigDecimal.ROUND_HALF_UP).doubleValue());

结果:4.01 (当使用4.025时结果为4.03)
看来还是达不到效果。

(4)用下面的方法:
System.out.println(Math.round(4.015*100 + 0.5)/100.0);

Ⅷ 在java中怎么对一个数字取整

public class EXC {
public static void main(String[] args) {
//如果是将 一个 float或double类型的小数 转换为整数 如下:
//利用java的强制类型转换规则
double d = 12.3;
int i = (int)d;
System.out.println(i);

//如果是将一个表示小数的 字符串转换为整数 如下:
//利用Integer包装类
String s = "12.3";// 或12.3f
i = Integer.parseInt(s.split("\\.")[0]);
System.out.println(i);

}
}

阅读全文

与javadouble取整相关的资料

热点内容
ibm服务器如何进u盘启动 浏览:185
网络驱动重启命令 浏览:446
入职联想程序员 浏览:155
linux拷贝目录下所有文件 浏览:46
androidwebview测试 浏览:234
java数组效率 浏览:496
java我的世界怎么免费开服务器 浏览:520
被删了的app如何找回 浏览:358
冒险岛飞花院服务器什么时间开的 浏览:864
old引擎视频编译 浏览:936
三小虎语音包文件夹 浏览:169
安卓区王者怎么转移苹果多少钱 浏览:542
怎么学好电脑的文字编程 浏览:400
武侠版pdf 浏览:776
捷安特骑行app如何添加好友 浏览:464
安卓手机怎么关闭启动项 浏览:567
群服的云服务器 浏览:566
暮光之城pdf 浏览:173
机房电脑命令 浏览:376
德语的命令句 浏览:604