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,謝謝閱讀。
部分參考:
https://blog.csdn.net/u013066244/article/details/53197756
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的java中负数取整_Java取整,固定保留两位小数,适配负数、金融数字。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java Word转Html
- 下一篇: java jvm容器_java –