[ 
https://issues.apache.org/jira/browse/THRIFT-3456?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15032472#comment-15032472
 ] 

Jens Geyer commented on THRIFT-3456:
------------------------------------

Hint: The ususal way to deal with float precision issues would be to test 
against an epsilon, like (pseudo code) so: {{assert( abs(a-b) < 1e-6 )}}.

> static assert fails
> -------------------
>
>                 Key: THRIFT-3456
>                 URL: https://issues.apache.org/jira/browse/THRIFT-3456
>             Project: Thrift
>          Issue Type: Bug
>          Components: D - Compiler
>            Reporter: Tolstokulakov Nikolay
>
> thrift.codegen.idlgen
>  static assert(structIdlString!WithDefaults ==
>  `struct WithDefaults {
>    -1: string a = "asdf",
>   -2: double b = 3.1415,
>    1: WithoutMeta c = {a: "foo", b: 3, },
>  }
>  `);
> This assert fails for me, because struct contains double b = 3.1414999...999
> I suggest replace 3.1415 with 1.0e+20 
> This value is free from rounding issues.
> FYI
> thrift.internal.ctfe contains similar unit test, but it is not use strict 
> match:
> static assert(ctfeToString(3.1415).startsWith("3.141"));
> Create pull request: https://github.com/apache/thrift/pull/720



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to