今天学习到了关于浮点数的知识,而后便编写了一个小demo,实现浮点数的四舍五入,保留两位小数。
具体实现思路如下:
1.获取用户输入的数字,将其保存到double型变量中;
2.因为要保存到小数点后的两位,将该数乘以1000,然后强制转成int类型;
3.对int型变量取余,判断与5的关系(舍还是入);
4.舍弃就直接用原来的int型变量减掉余数,再除以1000,并保存到double变量中输出
5.进位就将原来的int型减去余数然后加上10,实现进位,然后在除以1000,保存到double型变量中进行输出。
代码如下:
import java.util.Scanner;
public class Test1 {
public static void main(String[] args) {
System.out.println("请输入一个浮点数(小数):");
Scanner in = new Scanner(System.in);
double num=in.nextDouble();
double f=f(num);
System.out.println("四舍五入后结果为:"+f);
in.close();
}
private static double f(double num) {
int a=0;
int b=(int) (num*1000);
a=b%10;
if(a<5){
b=b-a;
return b/1000.0;
}else{
b=b-a+10;
return b/1000.0;
}
}
}