中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

判斷數(shù)值有效位數(shù)的Java工具類(lèi)

2018-07-20    來(lái)源:open-open

容器云強(qiáng)勢(shì)上線(xiàn)!快速搭建集群,上萬(wàn)Linux鏡像隨意使用
public class AdjustmentDouble{  
    /** 
     * @param s 需處理的數(shù)據(jù) 
     * @param numOfIntPart 整數(shù)位數(shù) 
     * @param numOfDecimalPart 小數(shù)位數(shù) 
     * @return 處理過(guò)的數(shù)據(jù) 
     */  
    public static String adjustDouble(String s,int numOfIntPart,int numOfDecimalPart){  
      
        //按小數(shù)點(diǎn)的位置分割成整數(shù)部分和小數(shù)部分  
        String[] array = s.split("\\.");  
        char[] tempA=new char[numOfIntPart];  
        char[] tempB=new char[numOfDecimalPart];  
        //整數(shù)部分滿(mǎn)足精度要求(情況1)  
        if(array[0].length()==numOfIntPart){  
            //直接獲取整數(shù)部分長(zhǎng)度字符  
            for(int i=0;i<array[0].length();i++){  
                tempA[i]=array[0].charAt(i);      
            }  
            //小數(shù)部分精度大于或等于指定的精度  
            if(numOfDecimalPart<=array[1].length()){  
                for(int i=0;i<numOfDecimalPart;i++){  
                    tempB[i]=array[1].charAt(i);  
                      
                }  
            }  
            //小數(shù)部分精度小于指定的精度  
            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);  
        }  
          
        //整數(shù)部分位數(shù)大于精度要求(情況2)  
                if(array[0].length()>numOfIntPart){  
                    //先倒序獲取指定位數(shù)的整數(shù)  
                    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];  
                    //調(diào)整順序  
                    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]);  
                          
                    }  
                    //小數(shù)部分精度大于或等于指定的精度  
                    if(numOfDecimalPart<=array[1].length()){  
                        for(int i=0;i<numOfDecimalPart;i++){  
                            tempB[i]=array[1].charAt(i);  
                              
                        }  
                          
                    }  
                    //小數(shù)部分精度小于指定的精度  
                    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);  
                }  
                  
                  
                //整數(shù)部分滿(mǎn)足精度要求(情況3)  
                if(array[0].length()==numOfIntPart){  
                    //直接獲取整數(shù)部分長(zhǎng)度字符  
                    for(int i=0;i<array[0].length();i++){  
                        tempA[i]=array[0].charAt(i);      
                    }  
                    //小數(shù)部分精度小于指定的精度  
                    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';  
                            }  
                              
                              
                        }  
                    }  
                      
                    //小數(shù)部分精度大于或等于指定的精度  
                    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);  
                }  
                  
                //整數(shù)部分大于精度要求(情況4)  
                if(array[0].length()>numOfIntPart){  
                    //先倒序獲取指定位數(shù)的整數(shù)  
                    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];  
                    //調(diào)整順序  
                    for(int j=0,k=tempA.length-1;j<numOfIntPart&&(k>=0);j++){  
                        tempA1[j]=tempA[k];  
                        k--;  
                    }  
                      
                    //小數(shù)部分精度小于指定的精度  
                    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);  
                            }  
                              
                              
                        }  
                    }  
                    //小數(shù)部分精度大于或等于指定的精度  
                    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);  
                }  
                  
                  
                  
                  
                  
                  
                //整數(shù)部分小于精度要求(情況5)  
                if(array[0].length()<numOfIntPart){  
                    //先倒序獲取指定位數(shù)的整數(shù)  
                    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]);  
                    }  
                          
                    //補(bǔ)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];  
                    //調(diào)整順序  
                    for(int j=0,k=tempA1.length-1;j<numOfIntPart&&(k>=0);j++){  
                        tempA2[j]=tempA1[k];  
                        k--;  
                    }  
                    //小數(shù)部分精度小于指定的精度  
                    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';  
                            }  
                              
                              
                        }  
                    }  
                    //小數(shù)部分精度大于或等于指定的精度  
                    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);  
          
    }  
  
}  

標(biāo)簽:

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀(guān)點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:元素相對(duì)于整個(gè)父親節(jié)點(diǎn)的left和top的輔助JS函數(shù)

下一篇:java判斷字符是否屬于中文