Leo Butler <leo.but...@umanitoba.ca> writes: > In ob-C.el, line 339 has the format specifier > > (`floatp '("double" "%f")) > > to print literal floats. However, that format specifier rounds, which > can result in errors. I think the correct approach is to print the > float without rounding or padding or trying to guess at the desired > accuracy (and let the compiler do whatever is needed): > > (`floatp '("double" "%s"))
Makes sense. Thanks! > - (`floatp '("double" "%f")) > + (`floatp '("double" "%s")) Please add comment explaining why not %f. Otherwise, it is not fully clear why "%s" is used. > --- a/testing/examples/ob-C-test.org > +++ b/testing/examples/ob-C-test.org > @@ -60,6 +60,12 @@ > return 0; > #+end_src > > +#+source: float_var > +#+begin_src cpp :var x=1.123456789012345678 :includes "<iostream>" :results > silent > +double y = 1.123456789012345678; > +std::cout << (x == y); > +#+end_src Please move the source block directly into the test using `org-test-with-temp-text'. The test will be more readable then. `org-test-at-id' should better be used only when necessary in order to not jump back and forth when debugging tests. -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at <https://orgmode.org/>. Support Org development at <https://liberapay.com/org-mode>, or support my work at <https://liberapay.com/yantar92>