[ https://issues.apache.org/jira/browse/LANG-1444?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17442523#comment-17442523 ]
asha somayajula commented on LANG-1444: --------------------------------------- Can a PR be created for this? > NumberUtils.createNumber() does not create BigDecimal for decimal fractions > tending to zero > ------------------------------------------------------------------------------------------- > > Key: LANG-1444 > URL: https://issues.apache.org/jira/browse/LANG-1444 > Project: Commons Lang > Issue Type: Bug > Components: lang.math.* > Affects Versions: 3.8.1 > Reporter: Costa Theodosiou > Priority: Major > Time Spent: 1h 50m > Remaining Estimate: 0h > > The following code demonstrates the issue: > {{System.out.println(NumberUtils.createNumber("1.1").getClass().getName());}} > {{System.out.println(NumberUtils.createNumber("1.001").getClass().getName());}} > {{System.out.println(NumberUtils.createNumber("1.00001").getClass().getName());}} > {{System.out.println(NumberUtils.createNumber("1.0000001").getClass().getName());}} > {{System.out.println(NumberUtils.createNumber("1.000000001").getClass().getName());}} > {{System.out.println(NumberUtils.createNumber("1.00000000001").getClass().getName());}} > {{System.out.println(NumberUtils.createNumber("1.0000000000001").getClass().getName());}} > {{System.out.println(NumberUtils.createNumber("1.000000000000001").getClass().getName());}} > {{System.out.println(NumberUtils.createNumber("1.00000000000000001").getClass().getName());}} > {{System.out.println(NumberUtils.createNumber("1.0000000000000000001").getClass().getName());}} > {{System.out.println(NumberUtils.createNumber("1.000000000000000000001").getClass().getName());}} > {{System.out.println(NumberUtils.createNumber("1.00000000000000000000001").getClass().getName());}} > will print: > {{java.lang.Float}} > {{java.lang.Float}} > {{java.lang.Float}} > {{java.lang.Float}} > {{java.lang.Double}} > {{java.lang.Double}} > {{java.lang.Double}} > {{java.lang.Double}} > {{java.lang.Float}} > {{java.lang.Float}} > {{java.lang.Float}} > {{java.lang.Float}} > It seems the problem is towards the bottom of the createNumber method that > compares the float to double string representation: > f.toString().equals(d.toString()) > For the misbehaving tests, the string "1.0".equals("1.0") -- This message was sent by Atlassian Jira (v8.20.1#820001)