* Bug: Final zero after decimal point is stripped when inline code evaluated [not found] <144951b9-d715-4fd6-a3f5-2462ff98acb0.ref@verizon.net> @ 2024-05-05 18:30 ` Charles Millar 2024-05-05 18:41 ` Charles Millar 2024-05-06 12:44 ` Ihor Radchenko 0 siblings, 2 replies; 9+ messages in thread From: Charles Millar @ 2024-05-05 18:30 UTC (permalink / raw) To: emacs-orgmode@gnu.org Please note that in the second src_latex the zero is stripped from the results. The final zero is required for my purposes, i.e. dollars and cents. This occurs in both results and on export to pdflatex, Does org's evaluation cause this or does latex? I have attempted to use the siunutx and currency packages.as follows, #+NAME: TABLE2 |22578.60| src_latex[:var printthis=TABLE2[-1,-1] :eval yes :results replace :exports results]{\num{printthis}} {{{results(@@latex:\num{22578.6}@@)}}} src_latex[:var printthis=TABLE2[-1,-1] :eval yes :results scalar :results replace :exports results]{\num[round-precision=2,round-mode=places,round-pad = false]{printthis}} {{{results(@@latex:\num{22578.6}@@)}}} src_latex[:var printthis=TABLE2[-1,-1] :eval yes :results replace :exports results]{\vUSD{printthis}} {{{results(@@latex:\vUSD{22578.6}@@)}}} (I also tried \dUSA and \cUSA) On the other hand this has no problem: #+NAME: TABLE1 |22578.59 | src_latex[:var printthis=TABLE1[-1,-1] :eval yes :results replace :exports results]{\num{printthis}} {{{results(@@latex:\num{22578.59}@@)}}} The missing zero is important - the result is supposed to be dollars and cents. Org mode version 9.7-pre (release_9.6.27-1391-gba7475 @ /usr/local/share/org-mode/lisp/) GNU Emacs 30.0.50 (build 100, x86_64-pc-linux-gnu, GTK+ Version 3.24.36, cairo version 1.16.0) of 2024-04-27 ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Bug: Final zero after decimal point is stripped when inline code evaluated 2024-05-05 18:30 ` Bug: Final zero after decimal point is stripped when inline code evaluated Charles Millar @ 2024-05-05 18:41 ` Charles Millar 2024-05-06 12:44 ` Ihor Radchenko 1 sibling, 0 replies; 9+ messages in thread From: Charles Millar @ 2024-05-05 18:41 UTC (permalink / raw) To: emacs-orgmode@gnu.org Forgot to include that i also used the numprint package. On 5/5/24 2:30 PM, Charles Millar wrote: > Please note that in the second src_latex the zero is stripped from the > results. The final zero is required for my purposes, i.e. dollars and > cents. This occurs in both results and on export to pdflatex, > > Does org's evaluation cause this or does latex? I have attempted to use > the siunutx and currency packages.as follows, > > #+NAME: TABLE2 > |22578.60| > > src_latex[:var printthis=TABLE2[-1,-1] :eval yes :results replace > :exports results]{\num{printthis}} {{{results(@@latex:\num{22578.6}@@)}}} > > src_latex[:var printthis=TABLE2[-1,-1] :eval yes :results scalar > :results replace :exports > results]{\num[round-precision=2,round-mode=places,round-pad = > false]{printthis}} {{{results(@@latex:\num{22578.6}@@)}}} > > src_latex[:var printthis=TABLE2[-1,-1] :eval yes :results replace > :exports results]{\vUSD{printthis}} {{{results(@@latex:\vUSD{22578.6}@@)}}} > (I also tried \dUSA and \cUSA) > > On the other hand this has no problem: > > #+NAME: TABLE1 > |22578.59 | > > src_latex[:var printthis=TABLE1[-1,-1] :eval yes :results replace > :exports results]{\num{printthis}} {{{results(@@latex:\num{22578.59}@@)}}} > > The missing zero is important - the result is supposed to be dollars and > cents. > > Org mode version 9.7-pre (release_9.6.27-1391-gba7475 @ > /usr/local/share/org-mode/lisp/) > > GNU Emacs 30.0.50 (build 100, x86_64-pc-linux-gnu, GTK+ Version 3.24.36, > cairo version 1.16.0) of 2024-04-27 > ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Bug: Final zero after decimal point is stripped when inline code evaluated 2024-05-05 18:30 ` Bug: Final zero after decimal point is stripped when inline code evaluated Charles Millar 2024-05-05 18:41 ` Charles Millar @ 2024-05-06 12:44 ` Ihor Radchenko 2024-05-06 16:36 ` Max Nikulin 1 sibling, 1 reply; 9+ messages in thread From: Ihor Radchenko @ 2024-05-06 12:44 UTC (permalink / raw) To: Charles Millar; +Cc: emacs-orgmode@gnu.org Charles Millar <millarc@verizon.net> writes: > Please note that in the second src_latex the zero is stripped from the > results. The final zero is required for my purposes, i.e. dollars and > cents. This occurs in both results and on export to pdflatex, > > Does org's evaluation cause this or does latex? I have attempted to use > the siunutx and currency packages.as follows, > > #+NAME: TABLE2 > |22578.60| > > src_latex[:var printthis=TABLE2[-1,-1] :eval yes :results replace > :exports results]{\num{printthis}} {{{results(@@latex:\num{22578.6}@@)}}} This is expected. When you assign :var, Org mode reads the table data, converting it to number. When numbers are considered, 22578.60 and 22578.6 are the same thing. If you want to retain the non-significant zeros in numbers, you need to use strings inside the table: #+name: TABLE2 |"22578.60"| Not a bug. Canceled. -- 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> ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Bug: Final zero after decimal point is stripped when inline code evaluated 2024-05-06 12:44 ` Ihor Radchenko @ 2024-05-06 16:36 ` Max Nikulin 2024-05-06 16:42 ` Ihor Radchenko 0 siblings, 1 reply; 9+ messages in thread From: Max Nikulin @ 2024-05-06 16:36 UTC (permalink / raw) To: emacs-orgmode On 06/05/2024 19:44, Ihor Radchenko wrote: > Charles Millar writes: >> #+NAME: TABLE2 >> |22578.60| >> >> src_latex[:var printthis=TABLE2[-1,-1] :eval yes :results replace >> :exports results]{\num{printthis}} {{{results(@@latex:\num{22578.6}@@)}}} > > This is expected. When you assign :var, Org mode reads the table data, > converting it to number. After discussion of ob-shell related issues I am in doubts if org-babel should eagerly convert strings to numbers. Perhaps numbers should be recognized for specific backends only (or vice versa conversion should be suppressed for specific backends). > #+name: TABLE2 > |"22578.60"| It may require boilerplate code for post-processing causing inconvenience. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Bug: Final zero after decimal point is stripped when inline code evaluated 2024-05-06 16:36 ` Max Nikulin @ 2024-05-06 16:42 ` Ihor Radchenko 2024-05-06 20:05 ` Charles Millar 0 siblings, 1 reply; 9+ messages in thread From: Ihor Radchenko @ 2024-05-06 16:42 UTC (permalink / raw) To: Max Nikulin; +Cc: emacs-orgmode Max Nikulin <manikulin@gmail.com> writes: > On 06/05/2024 19:44, Ihor Radchenko wrote: >> Charles Millar writes: >>> #+NAME: TABLE2 >>> |22578.60| >>> >>> src_latex[:var printthis=TABLE2[-1,-1] :eval yes :results replace >>> :exports results]{\num{printthis}} {{{results(@@latex:\num{22578.6}@@)}}} >> >> This is expected. When you assign :var, Org mode reads the table data, >> converting it to number. > > After discussion of ob-shell related issues I am in doubts if org-babel > should eagerly convert strings to numbers. Perhaps numbers should be > recognized for specific backends only (or vice versa conversion should > be suppressed for specific backends). Maybe. But changing the current behavior is not trivial - a lot of code relies upon it implicitly. If anyone wants to work on more fine-grained control over Org markup -> Elisp conversion, feel free. -- 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> ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Bug: Final zero after decimal point is stripped when inline code evaluated 2024-05-06 16:42 ` Ihor Radchenko @ 2024-05-06 20:05 ` Charles Millar 2024-05-07 11:49 ` Max Nikulin 0 siblings, 1 reply; 9+ messages in thread From: Charles Millar @ 2024-05-06 20:05 UTC (permalink / raw) To: Ihor Radchenko, Max Nikulin; +Cc: emacs-orgmode On 5/6/24 12:42 PM, Ihor Radchenko wrote: > Max Nikulin <manikulin@gmail.com> writes: > >> On 06/05/2024 19:44, Ihor Radchenko wrote: >>> Charles Millar writes: >>>> #+NAME: TABLE2 >>>> |22578.60| >>>> >>>> src_latex[:var printthis=TABLE2[-1,-1] :eval yes :results replace >>>> :exports results]{\num{printthis}} {{{results(@@latex:\num{22578.6}@@)}}} >>> >>> This is expected. When you assign :var, Org mode reads the table data, >>> converting it to number. >> >> After discussion of ob-shell related issues I am in doubts if org-babel >> should eagerly convert strings to numbers. Perhaps numbers should be >> recognized for specific backends only (or vice versa conversion should >> be suppressed for specific backends). > > Maybe. But changing the current behavior is not trivial - a lot of code > relies upon it implicitly. If anyone wants to work on more > fine-grained control over Org markup -> Elisp conversion, feel free. > Thanks for the feedback. For the moment I will create separate tables that have the the desired data in quotes. I appreciate that mathematically a trailing zero or zeros may be non-significant; however, in my use case, i.e. correct format in a text, they are necessary. Another example, in addition to my Dollars and cents scenario, may be a table that that has been created by using append, and the table appears as follows because trailing zeros were disregarded. This 1.222 that 3.444 it 5.6 last 7.691 Question arises - is the correct number reported on line "it" 5.600 or has some editing omitted the last two decimal places? As an aside, I am not a coder; however I was playing around in the scratch butter, and it appears to me that this issue may run deeper that Org Mode, for instance: (number-to-string 5.000) evaluates to "5.0" Furthermore, and more closely related to the topic, (setq toconvert 5.000) (number-to-string toconvert) evaluates to "5". Just my 0.020 cents Charlie Millar ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Bug: Final zero after decimal point is stripped when inline code evaluated 2024-05-06 20:05 ` Charles Millar @ 2024-05-07 11:49 ` Max Nikulin [not found] ` <aad9bb0b-4b64-4934-952d-a6cdc9f3b32f@verizon.net> 0 siblings, 1 reply; 9+ messages in thread From: Max Nikulin @ 2024-05-07 11:49 UTC (permalink / raw) To: emacs-orgmode On 07/05/2024 03:05, Charles Millar wrote: > I appreciate that mathematically a trailing zero or zeros may be > non-significant; however, in my use case, i.e. correct format in a text, > they are necessary. Another example, in addition to my Dollars and cents > scenario, may be a table that that has been created by using append, and > the table appears as follows because trailing zeros were disregarded. > > This 1.222 > that 3.444 > it 5.6 > last 7.691 > > Question arises - is the correct number reported on line "it" 5.600 or > has some editing omitted the last two decimal places? I am unsure what do you mean by "using append". From my point of view there are 2 cases: - When output format is fixed | 2 | 1.41 | | 3 | 1.73 | #+TBLFM: $2=(sqrt $1);%.2f - When calculations should be performed with fixed point, usual floating point representation gives unexpected results src_elisp{(- 0.3 (+ 0.1 0.1 0.1))} {{{results(=-5.551115123125783e-17=)}}} Some programming languages have decimal type for numbers: https://docs.python.org/3/library/decimal.html As to finances, I was surprised that ledger, hledger, and beancount have different internal representations for amounts and there are various issues with rounding. Org just should avoid unnecessary conversions between strings an numbers, but Ihor is right and implementation would require enough efforts. > (setq toconvert 5.000) > (number-to-string toconvert) > > evaluates to "5". I get "5.0" (Linux), so I suspect some mistake. ^ permalink raw reply [flat|nested] 9+ messages in thread
[parent not found: <aad9bb0b-4b64-4934-952d-a6cdc9f3b32f@verizon.net>]
* Fwd: Bug: Final zero after decimal point is stripped when inline code evaluated [not found] ` <aad9bb0b-4b64-4934-952d-a6cdc9f3b32f@verizon.net> @ 2024-05-07 14:31 ` Charles Millar 2024-05-07 16:40 ` Max Nikulin 1 sibling, 0 replies; 9+ messages in thread From: Charles Millar @ 2024-05-07 14:31 UTC (permalink / raw) To: emacs-orgmode@gnu.org -------- Forwarded Message -------- Subject: Re: Bug: Final zero after decimal point is stripped when inline code evaluated Date: Tue, 7 May 2024 10:25:05 -0400 From: Charles Millar <millarc@verizon.net> To: Max Nikulin <manikulin@gmail.com> On 5/7/24 7:49 AM, Max Nikulin wrote: > On 07/05/2024 03:05, Charles Millar wrote: >> I appreciate that mathematically a trailing zero or zeros may be >> non-significant; however, in my use case, i.e. correct format in a >> text, they are necessary. Another example, in addition to my Dollars >> and cents scenario, may be a table that that has been created by using >> append, and the table appears as follows because trailing zeros were >> disregarded. >> >> This 1.222 >> that 3.444 >> it 5.6 >> last 7.691 >> >> Question arises - is the correct number reported on line "it" 5.600 or >> has some editing omitted the last two decimal places? > > I am unsure what do you mean by "using append". Nor sure myself! What I meant was each number in the second column was a result of a :var evaluation that called a table and that there was a different table for each number. > From my point of view there are 2 cases: > - When output format is fixed > | 2 | 1.41 | > | 3 | 1.73 | > #+TBLFM: $2=(sqrt $1);%.2f > - When calculations should be performed with fixed point, > usual floating point representation gives unexpected results > src_elisp{(- 0.3 (+ 0.1 0.1 0.1))} > {{{results(=-5.551115123125783e-17=)}}} > > Some programming languages have decimal type for numbers: > https://docs.python.org/3/library/decimal.html > > As to finances, I was surprised that ledger, hledger, and beancount have > different internal representations for amounts and there are various > issues with rounding. > > Org just should avoid unnecessary conversions between strings an > numbers, but Ihor is right and implementation would require enough efforts. > >> (setq toconvert 5.000) >> (number-to-string toconvert) >> >> evaluates to "5". > > I get "5.0" (Linux), so I suspect some mistake. > > > I am using Debian Testing, full upgrade as of last Saturday. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Bug: Final zero after decimal point is stripped when inline code evaluated [not found] ` <aad9bb0b-4b64-4934-952d-a6cdc9f3b32f@verizon.net> 2024-05-07 14:31 ` Fwd: " Charles Millar @ 2024-05-07 16:40 ` Max Nikulin 1 sibling, 0 replies; 9+ messages in thread From: Max Nikulin @ 2024-05-07 16:40 UTC (permalink / raw) To: Charles Millar; +Cc: Org Mode List On 07/05/2024 21:25, Charles Millar wrote: > On 5/7/24 7:49 AM, Max Nikulin wrote: >> On 07/05/2024 03:05, Charles Millar wrote: >> >>> (setq toconvert 5.000) >>> (number-to-string toconvert) >>> >>> evaluates to "5". >> >> I get "5.0" (Linux), so I suspect some mistake. >> > I am using Debian Testing, full upgrade as of last Saturday. Debian bookworm stable and Emacs-28.2. LANG, LC_NUMERIC, LC_ALL environment variable should not affect formatting in numbers in Emacs since the "C" locale is forced for numbers. The only guess I have is non-default value of `float-output-format'. ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2024-05-07 16:41 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <144951b9-d715-4fd6-a3f5-2462ff98acb0.ref@verizon.net> 2024-05-05 18:30 ` Bug: Final zero after decimal point is stripped when inline code evaluated Charles Millar 2024-05-05 18:41 ` Charles Millar 2024-05-06 12:44 ` Ihor Radchenko 2024-05-06 16:36 ` Max Nikulin 2024-05-06 16:42 ` Ihor Radchenko 2024-05-06 20:05 ` Charles Millar 2024-05-07 11:49 ` Max Nikulin [not found] ` <aad9bb0b-4b64-4934-952d-a6cdc9f3b32f@verizon.net> 2024-05-07 14:31 ` Fwd: " Charles Millar 2024-05-07 16:40 ` Max Nikulin
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).