黑马程序员技术交流社区
标题:
练习:给定一个小数,保留该小数的后两位,不会做
[打印本页]
作者:
谭荣强
时间:
2014-3-14 11:38
标题:
练习:给定一个小数,保留该小数的后两位,不会做
毕老师留的练习,想不出来,有人做出来了吗
作者:
osully
时间:
2014-3-14 12:12
把楼上的理论 代码化 呵呵!
/*
* 给定一个小数,保留该小数的后两位
*/
public class Test2 {
public static void main(String[] args) {
System.out.println(save(3.1415926,2));
}
public static double save(double d,int i){ // i是想保留几位小数
long l = (long) Math.pow(10, i); //10的i次方
d = (Math.ceil(d*l))/l; //Math.ceil为四舍五入取整数
return d;
}
}
复制代码
作者:
张贺
时间:
2014-3-14 12:28
import java.math.BigDecimal;
import java.text.NumberFormat;
public class test
{
public static void main(String[] args)
{
//方式一(只能用于输出):
double d=123.124567;
System.out.printf("%9.2f",d);
System.out.println();
//方式二,通过BigDecimal类:
BigDecimal b=new BigDecimal(12345.456645);
//使用BigDecimal对象的setScale方法,设置精度为2,且进行四舍五入
double b1=b.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println(b1);
//方式三,通过NumberFormat类:
//初始化NumberFormat对象
NumberFormat nf=NumberFormat.getInstance();
//设置需要转换的数据的精度
nf.setMaximumFractionDigits(2);
//通过format方法转换(返回值为String类型),并通过Double.parseDouble转换为double
double d1=Double.parseDouble(nf.format(d));
System.out.println(d1);
}
}
复制代码
作者:
谭荣强
时间:
2014-3-14 18:01
谢了 楼上各位
作者:
文江江
时间:
2014-3-14 18:28
public class Test {
public static void main(String[] args) {
//DecimalFormat 是一个浮点型格式的对象,java.text.DecimalFormat
NumberFormat nf = NumberFormat.getInstance();
nf.setMaximumFractionDigits(2);
double var = 8.88888;
System.out.println(nf.format(var));
}
}
复制代码
作者:
希冀
时间:
2014-8-23 09:16
class MathDemo
{
public static void main(String[] args)
{
ceshi(23.454242,3);
}
//返回一个小数的后两位 double 为小数值 i为保留位数
public static void ceshi(double d,int i)
{
double d1 = d* (Math.pow(10,i));
//sop(d1);
System.out.println(Math.round(d1)/(Math.pow(10,i)));
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2