相关疑难解决方法(0)

Coldfusion中PrecisionEvaluate的科学记数法

我在使用大数和长十进制数时遇到问题,正如其他人提到或使用PrecisionEvaluate解决了这样的问题,我无法通过这样的函数获得一致的结果.

此代码示例:

<cfset n = 0.000000000009>
<cfoutput>#precisionEvaluate(n)#</cfoutput> // this will produce "9E-12"
<cfoutput>#precisionEvaluate("n")#</cfoutput> // this will produce "0.000000000009"
Run Code Online (Sandbox Code Playgroud)

根据Adobe文档,不建议使用Quote(由于处理效率低)以及它应该产生相同的结果,但是上述代码不是这种情况.

结果不一致的进一步试验:

<cfset n = 0.000000000009>
<cfset r = 12567.8903>
<cfoutput>#precisionEvaluate(r * n)#</cfoutput> // this will produce "1.131110127E-7"
<cfoutput>#precisionEvaluate("r * n")#</cfoutput> // this will produce "1.131110127E-7", same as above
<cfoutput>#precisionEvaluate(r / n)#</cfoutput> // this will produce "1396432255555555.55555555555555555556"
<cfoutput>#precisionEvaluate("r / n")#</cfoutput> // this will produce "1396432255555555.55555555555555555556", same as above
Run Code Online (Sandbox Code Playgroud)

有没有人遇到类似案件的问题?解决不一致问题的实用解决方案是什么?我试过:使用val()函数没有解决,因为它仅限于短数,使用numberFormat()函数很难,因为我们必须传递小数位数才能正确格式化.

coldfusion numbers scientific-notation

2
推荐指数
1
解决办法
1585
查看次数

标签 统计

coldfusion ×1

numbers ×1

scientific-notation ×1