[
https://issues.apache.org/jira/browse/THRIFT-5496?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17472052#comment-17472052
]
Jens Geyer commented on THRIFT-5496:
------------------------------------
> Would somebody please explain why scientific notation is not used when
> appropriate?
I wonder what value the answer to that question will add?
> Thrift compiler (C/C++) truncates small doubles to a fixed number of digits
> after the decimal point
> ----------------------------------------------------------------------------------------------------
>
> Key: THRIFT-5496
> URL: https://issues.apache.org/jira/browse/THRIFT-5496
> Project: Thrift
> Issue Type: Bug
> Components: C++ - Compiler
> Affects Versions: 0.15.0
> Reporter: Richard H. Gumpertz
> Priority: Minor
> Original Estimate: 0h
> Time Spent: 10m
> Remaining Estimate: 0h
>
> When the Thrift C++ compiler generates double constants in .h files, it
> (1) doesn't use scientific notation (e.g., 123.45e-22)
> (2) uses a fixed number of digits after the decimal point
> Hence, if the constant to be generated is small but non-zero, it shows up as
> "0.0000000000000000" (17 digits of precision, 16 after the decimal point).
> (1) Would somebody please explain why scientific notation is not used when
> appropriate?
> (2) Assuming that there is a good reason for not using scientific notation, I
> have created a fix that instead generates
> "0.000000000000000000012345000000000000" (17 digits of precision following
> the 19 '0's between the decimal point and the '1'.
> I made this fix in .../generate/t_erl_generator.cc,,
> .../generate/t_generator.cc,, and .../test/DoubleConstantsTest.thrift.
> I will submit a github pull request shortly.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)