[
https://issues.apache.org/jira/browse/THRIFT-5496?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18039424#comment-18039424
]
Jens Geyer commented on THRIFT-5496:
------------------------------------
Feel free to send another PR. I close the old one, because there were
outstanding change requests but no activity anymore.
> 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: 2h 20m
> 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.10#820010)