判断数值有效位数的Java工具类
发布时间:2020-12-15 00:13:37 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 public class AdjustmentDouble{ /** * @param s 需处理的数据 * @param numOfIntPart 整数位数 * @param numOfDecimalPart 小数位数 * @return 处理
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考 public class AdjustmentDouble{ /** * @param s 需处理的数据 * @param numOfIntPart 整数位数 * @param numOfDecimalPart 小数位数 * @return 处理过的数据 */ public static String adjustDouble(String s,int numOfIntPart,int numOfDecimalPart){ //按小数点的位置分割成整数部分和小数部分 String[] array = s.split("."); char[] tempA=new char[numOfIntPart]; char[] tempB=new char[numOfDecimalPart]; //整数部分满足精度要求(情况1) if(array[0].length()==numOfIntPart){ //直接获取整数部分长度字符 for(int i=0;i<array[0].length();i++){ tempA[i]=array[0].charAt(i); } //小数部分精度大于或等于指定的精度 if(numOfDecimalPart<=array[1].length()){ for(int i=0;i<numOfDecimalPart;i++){ tempB[i]=array[1].charAt(i); } } //小数部分精度小于指定的精度 if(numOfDecimalPart>array[1].length()){ for(int i=0;i<numOfDecimalPart;i++){ if(i<array[1].length()){ tempB[i]=array[1].charAt(i); }else{ tempB[i]='0'; } } } if(numOfDecimalPart==0){ return String.valueOf(tempA)+String.valueOf(tempB); } return String.valueOf(tempA)+"."+String.valueOf(tempB); } //整数部分位数大于精度要求(情况2) if(array[0].length()>numOfIntPart){ //先倒序获取指定位数的整数 for(int i=array[0].length()-1,j=0;(i>=array[0].length()-numOfIntPart)&&(j<numOfIntPart);i--,j++){ tempA[j]=array[0].charAt(i); System.out.println(tempA[j]); } char[] tempA1=new char[numOfIntPart]; //调整顺序 for(int j=0,k=tempA.length-1;j<numOfIntPart&&(k>=0);j++,k--){ tempA1[j]=tempA[k]; System.out.println("tempA1[j]"+tempA1[j]); } //小数部分精度大于或等于指定的精度 if(numOfDecimalPart<=array[1].length()){ for(int i=0;i<numOfDecimalPart;i++){ tempB[i]=array[1].charAt(i); } } //小数部分精度小于指定的精度 if(numOfDecimalPart>array[1].length()){ for(int i=0;i<numOfDecimalPart;i++){ if(i<array[1].length()){ tempB[i]=array[1].charAt(i); }else{ tempB[i]='0'; } } } return String.valueOf(tempA1)+"."+String.valueOf(tempB); } //整数部分满足精度要求(情况3) if(array[0].length()==numOfIntPart){ //直接获取整数部分长度字符 for(int i=0;i<array[0].length();i++){ tempA[i]=array[0].charAt(i); } //小数部分精度小于指定的精度 if(numOfDecimalPart>array[1].length()){ for(int i=0;i<numOfDecimalPart;i++){ if(i<array[1].length()){ tempB[i]=array[1].charAt(i); }else{ tempB[i]='0'; } } } //小数部分精度大于或等于指定的精度 if(numOfDecimalPart<=array[1].length()){ for(int i=0;i<numOfDecimalPart;i++){ tempB[i]=array[1].charAt(i); } } if(numOfDecimalPart==0){ return String.valueOf(tempA)+String.valueOf(tempB); } return String.valueOf(tempA)+"."+String.valueOf(tempB); } //整数部分大于精度要求(情况4) if(array[0].length()>numOfIntPart){ //先倒序获取指定位数的整数 for(int i=array[0].length()-1,j=0;(i>=array[0].length()-numOfIntPart+1)&&(j<numOfIntPart);i--,j++){ //System.out.println("<<<<"+(i-array[0].length()+1)); tempA[j]=array[0].charAt(i); } char[] tempA1=new char[numOfIntPart]; //调整顺序 for(int j=0,k=tempA.length-1;j<numOfIntPart&&(k>=0);j++){ tempA1[j]=tempA[k]; k--; } //小数部分精度小于指定的精度 if(numOfDecimalPart>array[1].length()){ for(int i=0;i<numOfDecimalPart;i++){ if(i>=array[1].length()){ tempB[i]='0'; }else{ tempB[i]=array[1].charAt(i); } } } //小数部分精度大于或等于指定的精度 if(numOfDecimalPart<=array[1].length()){ for(int i=0;i<numOfDecimalPart;i++){ tempB[i]=array[1].charAt(i); } } if(numOfDecimalPart==0){ return String.valueOf(tempA1)+String.valueOf(tempB); } return String.valueOf(tempA1)+"."+String.valueOf(tempB); } //整数部分小于精度要求(情况5) if(array[0].length()<numOfIntPart){ //先倒序获取指定位数的整数 char[] tempA1=new char[numOfIntPart]; for(int i=array[0].length()-1,j=0;(i>=numOfIntPart-array[0].length()-(numOfIntPart-array[0].length()))&&(j<numOfIntPart);i--,j++){ tempA1[j]=array[0].charAt(i); System.out.println("<<<<<<tempA1[j]"+tempA1[j]); } //补0 for(int i=array[0].length();i<array[0].length()+numOfIntPart-array[0].length();i++){ tempA1[i]='0'; System.out.println("<<<<<<"+tempA1[i]); } char[] tempA2=new char[numOfIntPart]; //调整顺序 for(int j=0,k=tempA1.length-1;j<numOfIntPart&&(k>=0);j++){ tempA2[j]=tempA1[k]; k--; } //小数部分精度小于指定的精度 if(numOfDecimalPart>array[1].length()){ for(int i=0;i<numOfDecimalPart;i++){ if(i<array[1].length()){ tempB[i]=array[1].charAt(i); }else{ tempB[i]='0'; } } } //小数部分精度大于或等于指定的精度 if(numOfDecimalPart<=array[1].length()){ for(int i=0;i<numOfDecimalPart;i++){ tempB[i]=array[1].charAt(i); } } if(numOfDecimalPart==0){ return String.valueOf(tempA2)+String.valueOf(tempB); } return String.valueOf(tempA2)+"."+String.valueOf(tempB); } //情况(6) if((array[0].length()<numOfIntPart)&&(array[1].length()<numOfDecimalPart)){ for(int i=0; i< numOfIntPart-array[0].length(); i++){ s = "0"+s ; } for(int i = 0 ; i < numOfDecimalPart -array[1].length() ; i++){ s = s+"0" ; } return s; } return null; } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub String s = "1234.123"; s = AdjustmentDouble.adjustDouble(s,5,6); System.out.println(s); } } 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |