• [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
    }
    

      

  • 相关阅读:
    模块化工具require 学习笔记
    学习Jade模板引擎
    通过border来实现各种三角符号
    使用vscode 编译 sass
    Javascript 运行机制
    Vue调试工具 vue-devtools
    MVVM框架
    通信类
    面向对象
    原型和原型链
  • 原文地址:https://www.cnblogs.com/MasterMonkInTemple/p/7299862.html
Copyright © 2020-2023  润新知