[SoapUI] 将科学计数法转化为普通数字,并且只保留小数点后几位

方案一:

import java.text.NumberFormat
class CompareHashMap {

    def regEx_Numeric = '-?[1-9]\d*$|-?([1-9]\d*\.\d*|0\.\d*|0?\.0+|0)$'
    def regEx_ScientificNotation = '^((-?\d+.?\d*)[Ee]{1}(-?\d+))$'   //科学计数法正则表达式
    int decimalPrecision = 5  //Compare 5 decimal places

    CompareHashMap(){
    }

    def formatDecimalPrecision(def dataValue){
	NumberFormat format = NumberFormat.getNumberInstance()
	format.setMaximumFractionDigits(decimalPrecision)
		
	dataValue = dataValue.toString()
		
	if(dataValue.matches(regEx_ScientificNotation)){
	  BigDecimal db = new BigDecimal(dataValue)
	  dataValue = db.toPlainString()
	}
		
	if(dataValue.matches(regEx_Numeric)){
	  //Switch String to double firstly
	  dataValue = Double.parseDouble(dataValue)  
	  dataValue = format.format(dataValue)
	}
	return dataValue
  }
}

  

方案二:

def formatDecimalPrecision(def dataValue, int decimalPrecision){   
      
      NumberFormat format = NumberFormat.getNumberInstance()
      format.setMaximumFractionDigits(decimalPrecision)
        
      dataValue = dataValue.toString()
      if(dataValue.isBigDecimal()){
           dataValue = new BigDecimal(dataValue).toPlainString()
       }
        
      def regEx_Numeric = '-?[1-9]\d*$|-?([1-9]\d*\.\d*|0\.\d*|0?\.0+|0)$'     
      if(dataValue.matches(regEx_Numeric)){
            //Switch String to double firstly
            dataValue = Double.parseDouble(dataValue)
            dataValue = format.format(dataValue)
       }
        
      return dataValue
}

  

原文地址:https://www.cnblogs.com/MasterMonkInTemple/p/7299862.html