两个数的运算,结果保留n位有效数字,不足补0。
来源:互联网 发布:德文布克体测数据 编辑:程序博客网 时间:2024/05/01 18:21
* 两个数相乘,结果保留n位小数
* @param num 第一个数
* @param m 第二个数
* @param n 保留的小数位
* @return
*/
public static String mul(String num,String m,String n){
if(isNullStr(num))
num="0";
if(isNullStr(m))
m="0";
if(isNullStr(n))
n="0";
BigDecimal b1 = new BigDecimal(num);
BigDecimal b2 = new BigDecimal(m);
return b1.multiply(b2).setScale(Integer.parseInt(n),BigDecimal.ROUND_HALF_UP).toString();//mul("55","22","2")="1210.00"
}
/**
* 两个数相加,结果保留n位小数
* @param num 第一个数
* @param m 第二个数
* @param n 保留的小数位
* @return
*/
public static String sum(String num,String m,String n){
BigDecimal b1 = new BigDecimal(num);
BigDecimal b2 = new BigDecimal(m);
return b1.add(b2).setScale(Integer.parseInt(n),BigDecimal.ROUND_HALF_UP).toString();//sum("55","22","2")=77.00
}
/**
* 两个数相减,结果保留n位小数
* @param num 第一个数
* @param m 第二个数
* @param n 保留的小数位
* @return
*/
public static String sub(String num,String m,String n){
if(isNullStr(num))
num="0";
if(isNullStr(m))
m="0";
if(isNullStr(n))
n="0";
BigDecimal b1 = new BigDecimal(num);
BigDecimal b2 = new BigDecimal(m);
BigDecimal res=b1.subtract(b2);
BigDecimal f= res.setScale(Integer.parseInt(n),BigDecimal.ROUND_HALF_UP);
return f.toString();//sub("55","22","2")=33.00
}
/**
* 判断是否是无效字符串
* @param str
* @return
*/
private static boolean isNullStr(String str){
if(str==null||"".endsWith(str.trim()))
return true;
return false;
}
附常用保留小数位的方法如下:
System.out.println("舍掉小数取整:Math.floor(3)=" + (int)Math.floor(3));
System.out.println("舍掉小数取整:Math.floor(3.1)=" + (int)Math.floor(3.1));
System.out.println("舍掉小数取整:Math.floor(3.5)=" + (int)Math.floor(3.5));
System.out.println("舍掉小数取整:Math.floor(3.9)=" + (int)Math.floor(3.9));
//舍掉小数取整:Math.floor(3)=3
//舍掉小数取整:Math.floor(3.1)=3
//舍掉小数取整:Math.floor(3.5)=3
//舍掉小数取整:Math.floor(3.9)=3
System.out.println("四舍五入取整:(3)=" + new BigDecimal("3").setScale(0, BigDecimal.ROUND_HALF_UP));
System.out.println("四舍五入取整:(3.1)=" + new BigDecimal("3.1").setScale(0, BigDecimal.ROUND_HALF_UP));
System.out.println("四舍五入取整:(3.5)=" + new BigDecimal("3.5").setScale(0, BigDecimal.ROUND_HALF_UP));
System.out.println("四舍五入取整:(3.9)=" + new BigDecimal("3.9").setScale(0, BigDecimal.ROUND_HALF_UP));
//四舍五入取整:(3)=3
//四舍五入取整:(3.1)=3
//四舍五入取整:(3.5)=4
//四舍五入取整:(3.9)=4
System.out.println("凑整:Math.ceil(5)=" + (int)Math.ceil(5));
System.out.println("凑整:Math.ceil(5.1)=" + (int)Math.ceil(5.1));
System.out.println("凑整:Math.ceil(5.5)=" + (int)Math.ceil(5.5));
System.out.println("凑整:Math.ceil(5.9)=" + (int)Math.ceil(5.9));
//凑整:Math.ceil(5)=5
//凑整:Math.ceil(5.1)=6
//凑整:Math.ceil(5.5)=6
//凑整:Math.ceil(5.9)=6
System.out.println("舍掉小数取整:Math.floor(-5)=" + (int)Math.floor(-5));
System.out.println("舍掉小数取整:Math.floor(-5.1)=" + (int)Math.floor(-5.1));
System.out.println("舍掉小数取整:Math.floor(-5.5)=" + (int)Math.floor(-5.5));
System.out.println("舍掉小数取整:Math.floor(-5.9)=" + (int)Math.floor(-5.9));
//舍掉小数取整:Math.floor(-5)=-5
//舍掉小数取整:Math.floor(-5.1)=-6
//舍掉小数取整:Math.floor(-5.5)=-6
//舍掉小数取整:Math.floor(-5.9)=-6
System.out.println("四舍五入取整:(-3)=" + new BigDecimal("-3").setScale(0, BigDecimal.ROUND_HALF_UP));
System.out.println("四舍五入取整:(-3.1)=" + new BigDecimal("-3.1").setScale(0, BigDecimal.ROUND_HALF_UP));
System.out.println("四舍五入取整:(-3.5)=" + new BigDecimal("-3.5").setScale(0, BigDecimal.ROUND_HALF_UP));
System.out.println("四舍五入取整:(-3.9)=" + new BigDecimal("-3.9").setScale(0, BigDecimal.ROUND_HALF_UP));
//四舍五入取整:(-3)=-3
//四舍五入取整:(-3.1)=-3
//四舍五入取整:(-3.5)=-4
//四舍五入取整:(-3.9)=-4
System.out.println("凑整:Math.ceil(-4)=" + (int)Math.ceil(-4));
System.out.println("凑整:Math.ceil(-4.1)=" + (int)Math.ceil(-4.1));
System.out.println("凑整:Math.ceil(-4.5)=" + (int)Math.ceil(-4.5));
System.out.println("凑整:Math.ceil(-4.9)=" + (int)Math.ceil(-4.9));
//凑整:Math.ceil(-4)=-4
//凑整:Math.ceil(-4.1)=-4
//凑整:Math.ceil(-4.5)=-4
//凑整:Math.ceil(-4.9)=-4
- 两个数的运算,结果保留n位有效数字,不足补0。
- c# 保留浮点数的n位有效数字
- C#保留N位有效数字的方法
- double保留几位小数 不足补0
- Flex 数据四舍五入保留N位有效数字
- 保留2位小数点 不足补零
- php number_format()保留小数点后几位有效数的函数 千位分组来格式化数字
- 长数字隔三位用逗号","隔开,保留两位小数,指定长度,不足补空格
- 编制一个完成两个数的四则运算程序。如:用户输入34+56则输出结果90.00。要求运算结果保留两位小数,用户输入时一次将两个数和操作符输入。
- 不足8位补齐8位 不足2的n次方补齐2的n次方
- mysql查询结果保留2位小数不够补0
- 有效数字的保留
- C#将int型数字转换成3位字符串,不足的时候,前面补0
- 将文件名中不足四位的数字前面以0补齐
- 随身小记:oracle保留两位小数、小数点后不足两位的补.00。
- java除法保留n位有效位
- 有两个浮点数a,b,计算a/b,要求保留小数点后面n 位(我写出小数点只能保存9~15位有效位数)
- java保留小数点后几位,不足的用0补
- 在 Oracle JDBC 访问中加入一些 Spring 特性
- C#文件夹加锁小工具
- 蒜头君救人
- S01E02 Selenium Webdriver自动化编程初步(上)
- jaxb xml转javaBean
- 两个数的运算,结果保留n位有效数字,不足补0。
- LintCode:两个整数相除
- jquery基本选择器:id选择器、class选择器、标签选择器、通配符选择器
- oracle OCP认证
- POJ2430 Lazy Cows【状压DP+离散化】
- 网易2017实习生招聘笔试题编程题参考思路和代码
- http://docs.aws.amazon.com/lambda/latest/dg/welcome.html
- 线程的2种实现方法
- 算法题/扑克牌顺子