ColdFusion의 DecimalFormat () 함수에서 이것에 어떤 영향을 미칩니 까? 올바른 결과를 얻으려면 어떻게해야합니까?

StackOverflow https://stackoverflow.com/questions/1428173

  •  07-07-2019
  •  | 
  •  

문제

<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>

출력 :

십진법 (25.625) : 25.62

십진법 (18.125) : 18.13

십진법 (6.875) : 6.88

출력보다는 :

십진법 (25.625) : 25.63

십진법 (18.125) : 18.13

십진법 (6.875) : 6.88

수학적 계산의 결과 인 변수는 DecimalFormat ()가 다르게 행동하게 만드는 것 같습니다. Java를 파헤 치지 않고 빠른 수정이 있습니까?

도움이 되었습니까?

해결책

나는 문제가 아니라고 생각한다 DecimalFormat(), 그러나 일반적인 부동 소수점 반올림 오류.

보다: PrecisionEvaluate()

다른 팁

DecimalFormat은 서식 기능입니다. 수학적 기능이 아닙니다. 그 임무는 당신을 위해 당신의 번호를 반올림하는 것이 아닙니다. 불행히도 CF는 소마에 대한 좋은 수학적 기능이 없으므로 직접 작성해야합니다.

다음은 CF Livedocs 페이지에 Round ()를 쓴 사람이 있습니다.

 <cffunction name="roundDecimal" returntype="numeric"> 
     <cfargument name="num" type="numeric" required="yes"> 
     <cfargument name="decimal" type="numeric" default="2" required="no"> 

     <cfreturn round(num*10^decimal)/10^decimal /> 
  </cffunction>

빠른 수정은 1 행 1으로 변경하는 것입니다. number1 = NumberFormat(20.5/80 * 100,'9.999')

CF 문서를 참조하십시오 숫자 특정 정보를보기 위해 라운드에서 페이지 검색을 수행하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top