[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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值