文/阿敏其人

本文出自阿敏其人博客,转载请注明出处和连接。

整数前的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,谢谢阅读。

部分参考:

https://blog.csdn.net/u013066244/article/details/53197756

java中负数取整_Java取整,固定保留两位小数,适配负数、金融数字。相关推荐

  1. java保留两位小数并向上取整_Java取整,固定保留两位小数,适配负数、金融数字。...

    文/阿敏其人 本文出自阿敏其人简书博客,转载请注明出处和连接. 整数前的0去掉. 小数固定保留两位小数 兼容负数 数字检测 适配金融大数额 核心类 public class BigDecimalStr ...

  2. java double 保留小数_java使double类型保留两位小数的方法

    java使double类型保留两位小数的方法 本文是百分网小编整理的主要介绍关于java使double类型保留两位小数的方法,有需要的朋友们一起看看吧!想了解更多相关信息请持续关注我们应届毕业生考试网 ...

  3. 在vue中,页面中访问全局的函数,例子:保留两位小数函数

    1.js里面写函数. //组态图上取两位小数 function toDecimal(x) { var f = 0; //判断是否是字符串类型 if(typeof(x) == "string& ...

  4. java BigDecimal保留两位小数

    对于一些精准的数字,如涉及到金额时我们一般会使用BigDecimal类型来保存和处理.在处理保留小数位数时,如果通过DecimalFormat表达式需要注意下. 1.通过DecimalFormat保留 ...

  5. Java中的BigDecimal比较大于小于等于,四舍五入保留几位(setScale方法详解),加减乘除取余

    本文主要讲解BigDecimal的比较运算,保留精度和取整和基础运算,BigDecimal与其他数据类型转换. 文章目录 比较运算 保留精度及取整 取整(保留0位小数) 保留精度 基础运算 BigDe ...

  6. js保留两位小数、取整、四舍五入

    vue.js保留两位小数.取整.四舍五入 保留小数点后两位的四种方法 小数取整 四舍五入 这篇文章适合学习js且又不知道如何保留小数点后两位的友友们阅读哦~ 想讨论更多编程话题 加入qq群聊:1090 ...

  7. python取两位小数点的函数_python中round函数保留两位小数的方法

    在我们日常计算的过程中,如果计算出小数,对大量的被保留数据,采用四舍五入这种保留法的误差总和是最小的,能使被保留部分的与实际值差值不超过最后一位数量级的二分之一.四舍五入是一种精确度的保留法,是我们使 ...

  8. java中想要保留2位小数_java使double保留两位小数的多方法 java保留两位小数

    mport java.text.DecimalFormat; DecimalFormat    df   = new DecimalFormat("######0.00"); do ...

  9. java int 保留两位小数_java保留两位小数

    java保留两位小数问题: 方式一: 四舍五入 double   f   =   111231.5585; BigDecimal   b   =   new   BigDecimal(f); doub ...

最新文章

  1. 手机php转换txt,PHP 实现的将图片转换为TXT
  2. android TextView 文本里面设置超链接
  3. real6410 裸机实验- LED
  4. 为WPF和Silverlight的Grid添加边框线
  5. 模型占用GPU显存计算
  6. python database ioerror_python – IOError:[Errno 2]没有这样的文件或...
  7. [云框架]KONG API Gateway v1.5 -框架说明、快速部署、插件开发
  8. 数据可视化表格-设计经验分享!
  9. mysql 记录操作_MySQL 记录操作
  10. ipq4019 识别板卡型号的过程
  11. python将npy文件转换成图片
  12. 【Windows】六种正确清理C盘的方法,解决你的红色烦恼
  13. 安全厂商发布网络间谍平台ProjectSauron研究报告
  14. lol超长id注册手把手教程 第一期
  15. MySQL根据idb文件恢复数据
  16. c语言的split字符串分割(函数strtok)
  17. HTML5期末大作业:商城网站设计——仿唯品会购物商城(5页) 纯手写-高质量 HTML+CSS+JavaScript
  18. Android音视频开发(一)——音视频开发流程
  19. 软件包 jdk1.8-2000:1.8.0_281-fcs.aarch64 是针对 different 构架的
  20. 工具-python包-虚拟环境管理(99.4.1)

热门文章

  1. 避免CRM_IB 013 error message
  2. Java里的class对象 - class object
  3. 使用SAP WebIDE往Github上推送代码修改时遇到错误消息 Commit request failed Commit failed. Ref must be HEAD and is HEAD
  4. 后台nodejs程序如何主动推送数据给浏览器
  5. MongoDB最简单的入门教程之三 使用Java代码往MongoDB里插入数据
  6. rs485如何使用_12个经典问答:带你全面了解RS485接口知识
  7. docker安装gamit_科学网—Ubuntu系统GAMIT/GLOBK程序安装 - 陈超的博文
  8. android studio socket编程实例
  9. Linux结构体变量报错,23. Linux模式设计
  10. python绘制立体扇形_Python实现PS滤镜特效之扇形变换效果示例