[
https://issues.apache.org/jira/browse/TRINIDAD-1683?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12910688#action_12910688
]
Gabrielle Crawford commented on TRINIDAD-1683:
----------------------------------------------
javascript numbers are really doubles, and as such can accurately support 15
digits, see
http://en.wikipedia.org/wiki/Double_precision
Proposed fix is to just parse the number string, and don't try to convert on
the client if the number of digits is greater than 15. Of course this is an
imperfect fix, but since the vast majority of numbers entered are less than 15
digits numbers are still converted on the client most of the time.
> client-side convertNumber causes loss of precision
> --------------------------------------------------
>
> Key: TRINIDAD-1683
> URL: https://issues.apache.org/jira/browse/TRINIDAD-1683
> Project: MyFaces Trinidad
> Issue Type: Bug
> Components: Components
> Affects Versions: 1.2.12-core
> Reporter: Cale Scholl
> Assignee: Gabrielle Crawford
> Priority: Minor
> Fix For: 1.2.14-core
>
> Attachments: maxPrecision_1.2.12.2.patch, maxPrecision_trunk.patch
>
>
> ISSUE:
> ----------
> JS numbers are 64-bit values and thus only have 16 digits of precision; this
> isn't enough to represent the max value of a Long, BigInteger, or BigDecimal.
> This means that when we convert a number string to object then back to string
> on the client, we can lose precision, even though we wouldn't lose any
> precision on the server.
> FIX:
> -----
> Only render a client converter if the input value is bound to a supported
> type (Float, Double, Integer, Short, Byte). The JavaScript number is a 64-bit
> floating type and has enough precision to represent any of these supported
> types.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.