导航:首页 > 编程语言 > 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相关的资料

热点内容
打开其它app微信怎么收不到 浏览:445
安卓游戏耳机怎么戴 浏览:16
不越狱怎么去除app广告 浏览:176
ipadminipdf阅读 浏览:504
文件夹无限制压缩会不会降低内存 浏览:410
荣耀怎样创建文件夹 浏览:629
如何用本机登陆远程服务器地址 浏览:680
黄小鸭解压文具盒 浏览:670
女程序员的转行方法 浏览:881
东风启辰车联网安装文件夹 浏览:524
华为怎么设置app时间锁 浏览:660
后宫app视频怎么下载 浏览:525
如何把图片转换从PDF格式 浏览:259
重写和重载的区别java 浏览:234
expressvpnandroid 浏览:84
储存卡被加密怎么解除 浏览:169
地球怎么压缩直径 浏览:780
金铲铲之战服务器爆满怎么进 浏览:160
同仁堂pdf 浏览:935
如何编译原理课程教材 浏览:730