[ 
https://issues.apache.org/jira/browse/WICKET-2878?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12870783#action_12870783
 ] 

Juergen Donnerstag commented on WICKET-2878:
--------------------------------------------

Do you have a testcase where this happens? Since AbstractDecimalConvert calls 
setParseBigDecimal(true) for all DecimalFormat's. And because of that parse() 
insight BigDecimalConverter.convertToObject() returns already a BigDecimal 
except for NaN and INFINITE etc. I couldn't find any usecase which returns a 
Double.

So, though I agree to change BCD.convertToObject, it'll not change anything, 
except you can provide a valid testcase.

Juergen

> BigDecimalConverter improvement
> -------------------------------
>
>                 Key: WICKET-2878
>                 URL: https://issues.apache.org/jira/browse/WICKET-2878
>             Project: Wicket
>          Issue Type: Improvement
>          Components: wicket
>    Affects Versions: 1.4.8
>            Reporter: Pedro Santos
>
> I was having problems comparing values returned by the user input into some 
> form fields of type BigDecimal. Looking for the problem, I notes that the 
> BigDecimalConverter was passing double values as parameter to BigDecimal 
> constructor. According with its doc:
> "he results of this constructor can be somewhat unpredictable. One might 
> assume that writing new BigDecimal(0.1) in Java creates a BigDecimal which is 
> exactly equal to 0.1 (an unscaled value of 1, with a scale of 1), but it is 
> actually equal to 0.1000000000000000055511151231257827021181583404541015625. 
> This is because 0.1 cannot be represented exactly as a double (or, for that 
> matter, as a binary fraction of any finite length). Thus, the value that is 
> being passed in to the constructor is not exactly equal to 0.1, appearances 
> notwithstanding. "
> "The String constructor, on the other hand, is perfectly predictable: writing 
> new BigDecimal("0.1") creates a BigDecimal which is exactly equal to 0.1, as 
> one would expect. Therefore, it is generally recommended that the String 
> constructor be used in preference to this one. "
> Can BigDecimalConverter use the valueOf method of the BigDecimal API or 
> String constructor to create those objects from double values? IMO giving 
> preference to those options we are improving the converter, since the value 
> will to be predictable

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to