导航:首页 > 编程语言 > javadouble四舍五入int

javadouble四舍五入int

发布时间:2022-08-27 09:56:43

java中,强制转换符把float转换为int时,按四舍五入,还是直接丢掉小数部分

直接舍掉小数 比如float是4.7 转换成int 后是4 而不是5 要四舍五入的话转换前先加上0.5
比如 int i ; double j = 4.7; i = (int)(j+0.5);

㈡ java怎么将double四舍五入

// 新方法,如果不需要四舍五入,可以使用RoundingMode.DOWN
BigDecimal bg = new BigDecimal(d).setScale(2, RoundingMode.UP);
return bg.doubleValue();
}

public static String formatDouble3(double d) {
NumberFormat nf = NumberFormat.getNumberInstance();
// 保留两位小数

㈢ 关于java double类型四舍五入的算法

这是为什么呢?

//double类型直接转换成为BigDecimal还是会造成精度丢失

解决方案

//把double类型首先转换为String类型,然后再把String类型转换成BigDecimal类型

实例代码

importjava.math.BigDecimal;
publicclassB{
publicstaticvoidmain(String[]args){
print0();
print1();
print2();
print3();//解决方案
}

privatestaticvoidprint0(){
doubled=12345.15;
BigDecimalb=newBigDecimal(d);
System.out.println(b);
doubled1=b.setScale(1,BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println(d1);
}

privatestaticvoidprint1(){
doubled=1234.115;
BigDecimalb=newBigDecimal(d);
System.out.println(b);
doubled1=b.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println(d1);
}

privatestaticvoidprint2(){
doubled=2345.115;
BigDecimalb=newBigDecimal(d);
System.out.println(b);
doubled1=b.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println(d1);
}
privatestaticvoidprint3(){
doubled=2345.115;
BigDecimalb=newBigDecimal(String.valueOf(d));//方案一
//BigDecimalb=newBigDecimal("2345.115");//方案二
//BigDecimalb=newBigDecimal(""+d);//方案三
System.out.println(d);
doubled1=b.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println(d1);
}
}

输出

12345.
12345.1//四舍五入保留1位
1234.
1234.12//四舍五入保留2位
2345.
2345.11//四舍五入保留2位
2345.115
2345.12//四舍五入保留2位

㈣ java中,double d,用表达式表示d四舍五入后的int结果

(int) d,自动四舍五入吧

㈤ JAVA 将小数四舍五入成整数的方法

例子:
double d=1.2;
int i = (int)( d + 0.5);

㈥ 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中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);

阅读全文

与javadouble四舍五入int相关的资料

热点内容
程序员报考内容 浏览:302
su3维文本命令 浏览:871
单片机存储器类型 浏览:13
unix查看端口命令 浏览:21
程序员团建活动有哪些 浏览:67
libzip压缩解压 浏览:943
广州银行app如何导流水 浏览:385
什么是写命令 浏览:687
程序员眼中的道德 浏览:505
文件解压后乱码是什么原因 浏览:730
php路径转换 浏览:188
php中flag 浏览:182
当程序员要做什么准备 浏览:284
pinctrllinux 浏览:901
lzw压缩工具 浏览:864
luae加密插件破解版 浏览:141
Python求导数和程序 浏览:223
太原java程序员 浏览:361
picfile是什么文件夹 浏览:292
12乘12国外的算法 浏览:183