groovy处理浮点数
/*
* 1. 浮点数
* - 不能加f,如果有f要去掉,要告诉前端约束
* - 构造时要加MathContext
* 2. 整数
* - 直接new BigDecimal
*/
@Unroll("test#title")
def "testString"() {
expect:
def varMap = ["p": param]
def script = "p == " + rs
println(script)
println("isInteger->" + rs.isInteger())
println("isBigDecimal->" + rs.isBigDecimal())
println("isBigInteger->" + rs.isBigInteger())
println("isDouble->" + rs.isDouble())
println("isFloat->" + rs.isFloat())
println("isNumber->" + rs.isNumber())
println("isLong->" + rs.isLong())
def response = ruleEngine.execute(script, varMap)
response == expectResponse
where:
title | param | rs | expectResponse
"singleQuotationString" | "123" | "'123'" | true
"doubleQuotationString" | "123" | "\"123\"" | true
"float" | 12.2F | "12.2f" | true
"float1" | 12f | "12f" | true
"double" | 12.2 | "12.2" | true
"double1" | 12 | "12" | true
"boolean" | true | "true" | true
"int" | 12 | "12" | true
"long" | 2L | "2" | true
"number1" | new BigDecimal(112.01, MathContext.DECIMAL32) | "112.01" | true
"number" | new BigDecimal(112.01f, MathContext.DECIMAL32) | "112.01" | true
"number" | new BigDecimal(112.01f, MathContext.DECIMAL32) | "112.01" | true
"number" | new BigDecimal(112.02, MathContext.DECIMAL32) | "112.02" | true
"number" | new BigDecimal(112.00, MathContext.DECIMAL32) | "112" | true
"number" | new BigDecimal(112) | "112.0" | true
"number" | new BigDecimal(112.0) | "112" | true
"number" | new BigDecimal(112f) | "112" | true
"number" | new BigDecimal(112, MathContext.DECIMAL32) | "112" | true
}
最后修改于 2021-11-22