什么是这个在ColdFusion的DecimalFormat()函数?如何获得正确的结果? [英] What is up with this in ColdFusion's DecimalFormat() function? How do I get the correct result?

查看:195
本文介绍了什么是这个在ColdFusion的DecimalFormat()函数?如何获得正确的结果?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 < cfset number1 = 20.5 / 80 * 100 /> 
< cfset number2 = 18.125 />
< cfset number3 = 6.875 />

< cfoutput>
DecimalFormat(#number1#):#DecimalFormat(number1)#< br />
DecimalFormat(#number2#):#DecimalFormat(number2)#< br />
DecimalFormat(#number3#):#DecimalFormat(number3)#
< / cfoutput>

OUTPUTS:



DecimalFormat(25.625):25.62



DecimalFormat(18.125):18.13



DecimalFormat(6.875): 6.88



低于输出:



DecimalFormat(25.625):25.63

DecimalFormat(18.125):18.13



DecimalFormat(6.875):6.88



看来,作为数学计算结果的变量使DecimalFormat()的行为不同。

解决方案

我认为问题不是 DecimalFormat / code>,但是典型的浮点舍入误差。



请参阅: PrecisionEvaluate()


<cfset number1 = 20.5/80 * 100 />
<cfset number2 = 18.125 />
<cfset number3 = 6.875 />

<cfoutput>
DecimalFormat(#number1#): #DecimalFormat(number1)#<br />
DecimalFormat(#number2#): #DecimalFormat(number2)#<br />
DecimalFormat(#number3#): #DecimalFormat(number3)#
</cfoutput>

OUTPUTS:

DecimalFormat(25.625): 25.62

DecimalFormat(18.125): 18.13

DecimalFormat(6.875): 6.88

RATHER THAN OUTPUTING:

DecimalFormat(25.625): 25.63

DecimalFormat(18.125): 18.13

DecimalFormat(6.875): 6.88

It seems that a variable that is the result of a mathematical calculation makes DecimalFormat() behave differently. Any quick fix, without digging into java?

解决方案

I think the problem is not DecimalFormat(), but the typical floating-point rounding errors.

see: PrecisionEvaluate()

这篇关于什么是这个在ColdFusion的DecimalFormat()函数?如何获得正确的结果?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆