[ 
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)

Reply via email to