From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: a07f3367d7,181acb4d59c58e23 X-Google-Attributes: gida07f3367d7,public,usenet X-Google-NewGroupId: yes X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news2.google.com!news4.google.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: "Vinzent Hoefler" Newsgroups: comp.lang.ada Subject: Re: evaluation of named numbers Date: Sun, 17 Oct 2010 17:28:58 +0200 Message-ID: References: <2304722c-027d-42f6-a45d-5a7646c35cf6@t8g2000yqk.googlegroups.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit X-Trace: individual.net HV558nTQ/D8HhjViUrPLZw4BNFDlK2j+1sC3Ocbnqkl1k3Kl6h Cancel-Lock: sha1:9Q4BSGxs+W1jspFOgqYoEqG1q9Y= User-Agent: Opera Mail/10.62 (Win32) Xref: g2news2.google.com comp.lang.ada:15560 Date: 2010-10-17T17:28:58+02:00 List-Id: On Sun, 17 Oct 2010 17:01:25 +0200, Rolf wrote: > I always thought that named numbers are fully evaluated with (almost) > unlimited precision at compile time. I was quite astonished to see > > Ticks : constant := 20 / 1000 * 16_000_000 / 8; -- 40_000 ticks > > evaluated to 0 and not to the expected 40.000. It seems that the > compiler uses integer numbers also for intermediate results and 20 / > 1000 ends up to be 0 instead of 0.02. Well, after all it's an integer expression. I wouldn't expect a real result when doing that - not even as an intermediate result. > Any decent pocket calculator gets that right. Because it uses real numbers. > Are expressions for named numbers always evaluated left to right? According to ARM 4.5(8), yes. Vinzent. -- There is no signature.