㈠ java中小数怎么四舍五入
按照你的要求为不确定保留几位小数的字符串做四舍五入的Java程序如下
import java.math.BigDecimal;
public class A {
public static void main(String[] args) {
String s="0.00000999999997";
//四舍五入,length是小数位数
int length=s.substring(s.indexOf(".")+1).length();
String s1=String.format("%."+(length-1)+"f",new BigDecimal(s));
//去尾部0
BigDecimal bd=new BigDecimal(s1).stripTrailingZeros();
System.out.println(bd.toPlainString());
}
}
㈡ java两个数相除后保留两位小数 (四舍五入),并且结果大于三位数要有千位分隔符,不是整数时,小数点前三
public static void main(String[] args) {
System.out.println(test(2, 0.7)); //参数为int和double 结果=2.86
System.out.println(test(11111111111113L, 4.5)); // 参数为long和double 结果=2,469,135,802,469.56
System.out.println(test("234567", "3.14159")); // 参数为字符串 结果=74,665.06
}
private static String test(Object a, Object b) { // 参数类型任意(只要是number),返回总是字符串
// 下面这一行里的2,表示保留小数点后多少位(四舍五入),如果两位就是2,如果小数点前三,就改成3.
BigDecimal result = new BigDecimal(String.valueOf(a)).divide(new BigDecimal(String.valueOf(b)), 2, BigDecimal.ROUND_HALF_UP);
return new DecimalFormat("###,###.###").format(Double.valueOf(result.toString())).toString();
}
㈢ 请问java提供什么方法实现将一个浮点数,四舍五入只保留小数点后两位
第一:从数据库读出时可以进行操作,将读出的数据进行处理后输出,这里可以用数据库提供的方法。这里不多提。
第二:也可以用JAVA进行处理,方法很多。
这里说两种吧:
第一
BigDecimal bd = new BigDecima("5.14881");
bd = bd.setScale(2,BigDecimal.ROUND_HALF_UP); System.out.println(bd);
第二
static double convert(double value){
long l1 = Math.round(value*100); //四舍五入
double ret = l1/100.0; //注意:使用 100.0 而不是 100
return ret;
}
public static void main(String[] args) {
// BigDecimal bd = new BigDecimal("3.14159265");
// bd = bd.setScale(2,BigDecimal.ROUND_HALF_UP);
double bd = convert(3.14559);
System.out.println(bd);
}
㈣ java中保留两位小数并要求四舍五入的方法
doubled=2.345;
//格式化为String
Stringstr=String.format("%.2f",d);
System.out.println(str);
//如果需要数字,可以再d=Double.parseDouble(str)
//////////////
BigDecimalbd=newBigDecimal("2.345");//建议使用String参数
BigDecimalbd_half_even=bd.setScale(2,RoundingMode.HALF_EVEN);
BigDecimalbd_half_up=bd.setScale(2,RoundingMode.HALF_UP);
System.out.println(bd_half_even);
System.out.println(bd_half_up);
//HALF_EVEN,HALF_UP是两种不同的四舍五入机制
//BigDecimal默认使用HALF_EVEN
//HALF_UP的效果就是经典的四舍五入
//HALF_EVEN是最科学的四舍五入,但结果和HALF_UP可能会不同
㈤ java怎么强制转换取2位小数,四舍五入
因为你要保留两位小数,而且要四舍五入,这就是个算法而已,你用数来带就明白了
比如1.056*100+0.5=106.1,取整局唤毁(不大于这个数的整数)就等于106,然后除100=1.06了,加0.5是保证第三位大于5就进位,小链历于5的话就桐备回在取整的时候被略掉,如1.054*100+0.5=105.9,取整的话就等于105,除100就等于1.05了
㈥ java中四舍五入保留两位小数,第三位正好是数字5怎么处理
使用String.format("镇空%.2f",num); //num是要处理的数据搜耐
这种方法可以用float,double接收数据类型,我试了一下String接收好像会报错,小伙伴也可以试一下。可以四舍五入保留两位小数,但是小数点第二位是0的话会不显示。以下代码用到此方法世旅春的语句:value.add(Double.valueOf ( String.format("%.2f", Double.valueOf(list.get(3).replace("\"", ""))*100)));
㈦ 如何把java得出的数值,保留小数点2位四舍五入
我写的C语言的算法,应该你可以转换下吧?呵呵!
就是通过整形数据的特点了;
例如该变量为float
x;浮点型数据
四舍五入的算法为:
{int
i=0;
整型数据;
i=(2*x*100+1)/2;
x=(float)i/100;
}
当保留小数点后两位是用100;3为是1000,1位是当然是10了;
明白?
唉!没学过,看着有点困难。
㈧ java如何取小数点前两位,并四舍五入
取银穗小数点差搏巧前两位,并四舍五入:
doublem=7237.3589
一、
DecimalFormatdf=虚键newDecimalFormat("#.00");
System.out.println(df.format(m));
二、
System.out.println(String.format("%.2f",m));
㈨ 如何把java得出的数值,保留小数点2位四舍五入
// 方式一:
double f = 3.1516;
BigDecimal b = new BigDecimal(f);
double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
// 方式二:
new java.text.DecimalFormat("#.00").format(3.1415926);
// #.00 表示两位小数 #.0000四位小数 以此类推…
// 方式三:
double d = 3.1415926;
String result = String.format("%.2f", d);
// %.2f %. 表示 小数点前任意位数 2 表示两位小数 格式后的结果为f 表示浮点型。
//方法四:
Math.round(5.2644555 * 100) * 0.01d;
//String.format("%0" + 15 + "d", 23) 23不足15为就在前面补0
㈩ java四舍五入 保留两位小数
因为double型小数部分会在从二进制变十进制的类型变换中产生误差,所以x2会变成-3.80000000000003,如果要使输出四舍五入 保留两位小数,可以用String的format函数,方法如下:
System.out.println(String.format("%.2f", x1));
System.out.println(String.format("%.2f", x2));