[
https://issues.apache.org/jira/browse/THRIFT-5496?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17471767#comment-17471767
]
Mario Emmenlauer commented on THRIFT-5496:
------------------------------------------
I would assume that there is no specific reason why scientific notation is
*not* used. It seems just likely that nobody requested support for such small
constants before. Using 16 or 17 digits of precision is a common thing to do
for double, but of course that does not work for very small constants.
For what its worth, I would suggest to add support for scientific notation, or
what do you think? That seems more reasonable than extending the decimal digits.
> 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)