java中负数取整_Java取整,固定保留两位小数,适配负数、金融数字。
文/阿敏其人
本文出自阿敏其人博客,轉(zhuǎn)載請注明出處和連接。
整數(shù)前的0去掉。
小數(shù)固定保留兩位小數(shù)
兼容負(fù)數(shù)
數(shù)字檢測
適配金融大數(shù)額
核心類
public class BigDecimalStringUtil {
/**
* 數(shù)字字符串,轉(zhuǎn)成BigDecima格式,兼容大數(shù)字
* 并且保留兩位小數(shù)
* @return
*/
public static String str2BigDecimalKeepDouble(String numStr){
if(!isNumeric(numStr)){
// 不是數(shù)字,直接返回空
return "";
}else{
// 是數(shù)字,那么那么就返回式子,保證有兩位小數(shù),整數(shù)前面不會出現(xiàn)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,輸出結(jié)果為0.66;
* 若double d=0,輸出結(jié)果為0.00;
*/
String keepTwoDecimalPlaces=String.format("%.2f",doubleNum);
return keepTwoDecimalPlaces;
}
}
/**
* 匹配是否為數(shù)字,小數(shù)點(diǎn),大數(shù)字 負(fù)述適用
* @param str 可能為中文,也可能是-19162431.1254,不使用BigDecimal的話,變成-1.91624311254E7
* @return
* @author yutao
* @date 2016年11月14日下午7:41:22
*/
public static boolean isNumeric(String str) {
// 該正則表達(dá)式可以匹配所有的數(shù)字 包括負(fù)數(shù)
Pattern pattern = Pattern.compile("-?[0-9]+(\\.[0-9]+)?");
String bigStr;
try {
bigStr = new BigDecimal(str).toString();
} catch (Exception e) {
return false;//異常 說明包含非數(shù)字。
}
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
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的java中负数取整_Java取整,固定保留两位小数,适配负数、金融数字。的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java Word转Html
- 下一篇: java jpanel 缓冲画图_Jav