[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
}
浙公网安备 33010602011771号