java保留两位小数并向上取整_Java取整,固定保留两位小数,适配负数、金融数字。...
文/阿敏其人
本文出自阿敏其人简书博客,转载请注明出处和连接。
整数前的0去掉。
小数固定保留两位小数
兼容负数
数字检测
适配金融大数额
核心类
public class BigDecimalStringUtil {
/**
* 数字字符串,转成BigDecima格式,兼容大数字
* 并且保留两位小数
* @return
*/
public static String str2BigDecimalKeepDouble(String numStr){
if(!isNumeric(numStr)){
// 不是数字,直接返回空
return "";
}else{
// 是数字,那么那么就返回式子,保证有两位小数,整数前面不会出现0。
BigDecimal bigDecimal = new BigDecimal(numStr);
double doubleNum = bigDecimal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
/**
* String s=String.format("%.2f",d);
* 若double d=0.6566,输出结果为0.66;
* 若double d=0,输出结果为0.00;
*/
String keepTwoDecimalPlaces=String.format("%.2f",doubleNum);
return keepTwoDecimalPlaces;
}
}
/**
* 匹配是否为数字,小数点,大数字 负述适用
* @param str 可能为中文,也可能是-19162431.1254,不使用BigDecimal的话,变成-1.91624311254E7
* @return
* @author yutao
* @date 2016年11月14日下午7:41:22
*/
public static boolean isNumeric(String str) {
// 该正则表达式可以匹配所有的数字 包括负数
Pattern pattern = Pattern.compile("-?[0-9]+(\\.[0-9]+)?");
String bigStr;
try {
bigStr = new BigDecimal(str).toString();
} catch (Exception e) {
return false;//异常 说明包含非数字。
}
Matcher isNum = pattern.matcher(bigStr); // matcher是全匹配
if (!isNum.matches()) {
return false;
}
return true;
}
}
测试
String s1 = BigDecimalStringUtil.str2BigDecimalKeepDouble("0");
String s2 = BigDecimalStringUtil.str2BigDecimalKeepDouble("0.01");
String s3 = BigDecimalStringUtil.str2BigDecimalKeepDouble("-0.44");
String s4 = BigDecimalStringUtil.str2BigDecimalKeepDouble("00000.000045");
String s5 = BigDecimalStringUtil.str2BigDecimalKeepDouble("0007.89");
String s6 = BigDecimalStringUtil.str2BigDecimalKeepDouble("1232456.9898987");
String s7 = BigDecimalStringUtil.str2BigDecimalKeepDouble("1234567890999.99999");
String s8 = BigDecimalStringUtil.str2BigDecimalKeepDouble("-123456.00");
String s9 = BigDecimalStringUtil.str2BigDecimalKeepDouble("-762367.123123");
String s10 = BigDecimalStringUtil.str2BigDecimalKeepDouble("-0762367.1231234567");
String s11 = BigDecimalStringUtil.str2BigDecimalKeepDouble("1111.2222");
String s12 = BigDecimalStringUtil.str2BigDecimalKeepDouble("-000098989.6666");
String s13 = BigDecimalStringUtil.str2BigDecimalKeepDouble("-000098989.000123");
String s14 = BigDecimalStringUtil.str2BigDecimalKeepDouble("-1234567812345.000123");
String s15 = BigDecimalStringUtil.str2BigDecimalKeepDouble("1234567812345.000123");
String s16 = BigDecimalStringUtil.str2BigDecimalKeepDouble("123ssd123");
String s17 = BigDecimalStringUtil.str2BigDecimalKeepDouble(",123");
String s18 = BigDecimalStringUtil.str2BigDecimalKeepDouble(",-3qwe");
System.out.println("s1:"+s1);
System.out.println("s2:"+s2);
System.out.println("s3:"+s3);
System.out.println("s4:"+s4);
System.out.println("s5:"+s5);
System.out.println("s6:"+s6);
System.out.println("s7:"+s7);
System.out.println("s8:"+s8);
System.out.println("s9:"+s9);
System.out.println("s10:"+s10);
System.out.println("s11:"+s11);
System.out.println("s12:"+s12);
System.out.println("s13:"+s13);
System.out.println("s14:"+s14);
System.out.println("s15:"+s15);
System.out.println("s16:"+s16);
System.out.println("s17:"+s17);
System.out.println("s18:"+s18);
image.png
END,谢谢阅读。
java保留两位小数并向上取整_Java取整,固定保留两位小数,适配负数、金融数字。...相关推荐
- java中负数取整_Java取整,固定保留两位小数,适配负数、金融数字。
文/阿敏其人 本文出自阿敏其人博客,转载请注明出处和连接. 整数前的0去掉. 小数固定保留两位小数 兼容负数 数字检测 适配金融大数额 核心类 public class BigDecimalStrin ...
- java的取整_Java取整方法总结
package com.hit; import java.math.BigDecimal; public class MathRounding { /** * * 项目名称: Java取整方法 * 包 ...
- java四舍五入取整_java取整和java四舍五入方法
import java.math.BigDecimal; import java.text.DecimalFormat; public class TestGetInt{ public static ...
- java运算四舍五入取整_java取整和四舍五入
java取整和四舍五入 舍掉小数取整:Math.floor(2.0)=2 舍掉小数取整:Math.floor(2.1)=2 舍掉小数取整:Math.floor(2.5)=2 舍掉小数取整:Math.f ...
- java 取余和取整_Java取整、取余
参考链接:http://blog..net/wanlixingzhe/article/details/7359809 参考链接:http://bbs..net/topics/390677448(6楼) ...
- java除法取整_JAVA取整
舍掉小数取整:Math.floor(2.0)=2 舍掉小数取整:Math.floor(2.1)=2 舍掉小数取整:Math.floor(2.5)=2 舍掉小数取整:Math.floor(2.9)=2 ...
- java向上取整函数_java取整函数,向上取整函数Math.ceil()
你知道java取整函数要怎样实现吗?下面要给大家分享的是java向上取整函数的相关内容,一起来了解一下具体的方法吧! java向上取整函数Math.ceil():double dividend = 7 ...
- java 除法取整_java 除法运算只保留整数位的4种方式
1.情景展示 根据提供的毫秒数进行除法运算,如果将毫秒数转换成小时,小时数不为0,则只取整数位,依此类推... 2.情况分析 可以使用3个函数实现 Math.floor(num) 只保留整数位 Ma ...
- mysql取余 和 取模_java 取模运算% 实则取余 简述 例子 应用在数据库分库分表
java 取模运算% 实则取余 简述 例子 应用在数据库分库分表 求模运算与求余运算不同."模"是"Mod"的音译,模运算多应用于程序编写中. Mod的含义为 ...
最新文章
- windows10+虚拟机Ubuntu17.10+Anaconda+Python2
- 吴恩达机器学习笔记55-异常检测算法的特征选择(Choosing What Features to Use of Anomaly Detection)
- Delphi中的TreeView
- 什么是“软件架构设计”(推荐)
- 百度代码规范 -- PHP
- C# 获取可执行文件路径的上上级目录的方法
- 【图像处理】——Python实现几何变换(自定义+opencv库)
- Centos6.8安装Nginx+域名转发
- mobx中的数组需要注意的地方
- Tsinsen A1517. 动态树 树链剖分,线段树,子树操作
- (原創) 如何控制DE2 VGA輸出時某座標的顏色? (IC Design) (DE2) (Quartus II)
- h5故障代码_H5故障与内机有关?
- zephir-(1)开篇介绍
- 世上哪有那么多的怀才不遇
- quartus ii IP核的破解
- JAVA_OPTS(JVM相关运行参数的变量)设置
- 大数据背后的无奈与焦虑:“128元连衣裙”划分矮穷挫与白富美?
- html中不写form的后果,html之form
- EZSP-UART 入门
- Redis的基本使用
热门文章
- Linux常用命令---groupadd,useradd(一)
- 基于docker搭建redis哨兵模式
- 燕雀安知鸿蒙之志,笔点酷玩 篇一百零三:燕雀焉知鸿鹄之志:华为智慧屏V65开箱初体验...
- 18 个 PHP 开源内容管理系统(CMS)
- 安装pnpm -需要管理员身份
- 微信小程序 执行 wx.reLaunch 后,点击事件失效【已解决,亲测有效】
- 苹果真的赢得了“世纪大战”吗?
- 深度图像基础知识(二)
- 学计算机头发变白了,最新研究:人类头发变白是可逆的,且与生活压力大有关!...
- 即得宝,用3D助力珠宝首饰行业的线上表达与远程沟通