From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Paul Eggert Newsgroups: gmane.emacs.devel Subject: Re: How to use a float value with either GLYPH_DEBUG or NSTRACE Date: Mon, 21 Aug 2017 16:55:08 -0700 Organization: UCLA Computer Science Department Message-ID: References: NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Trace: blaine.gmane.org 1503359776 5958 195.159.176.226 (21 Aug 2017 23:56:16 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Mon, 21 Aug 2017 23:56:16 +0000 (UTC) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 Cc: Alan Third , Emacs developers To: Noam Postavsky , Keith David Bershatsky Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Aug 22 01:56:11 2017 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1djwYB-0000sI-7j for ged-emacs-devel@m.gmane.org; Tue, 22 Aug 2017 01:56:07 +0200 Original-Received: from localhost ([::1]:41201 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1djwYC-0006b4-NC for ged-emacs-devel@m.gmane.org; Mon, 21 Aug 2017 19:56:08 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:51481) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1djwXO-0006Yg-74 for emacs-devel@gnu.org; Mon, 21 Aug 2017 19:55:21 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1djwXK-0003nz-Bl for emacs-devel@gnu.org; Mon, 21 Aug 2017 19:55:18 -0400 Original-Received: from zimbra.cs.ucla.edu ([131.179.128.68]:41820) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1djwXK-0003lv-4V for emacs-devel@gnu.org; Mon, 21 Aug 2017 19:55:14 -0400 Original-Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 58CD8160888; Mon, 21 Aug 2017 16:55:09 -0700 (PDT) Original-Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id evQT5MR8HX1I; Mon, 21 Aug 2017 16:55:08 -0700 (PDT) Original-Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 9FFC3160882; Mon, 21 Aug 2017 16:55:08 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Original-Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id BtSRWZVaM6fH; Mon, 21 Aug 2017 16:55:08 -0700 (PDT) Original-Received: from Penguin.CS.UCLA.EDU (Penguin.CS.UCLA.EDU [131.179.64.200]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 8603216084B; Mon, 21 Aug 2017 16:55:08 -0700 (PDT) In-Reply-To: Content-Language: en-US X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-Received-From: 131.179.128.68 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:217673 Archived-At: On 08/21/2017 02:30 PM, Noam Postavsky wrote: > I would imagine that "the whole > thing" is usually more than is really useful. Yes, %.20g is not what is wanted here as it will output trailing excess digits, e.g, it outputs 0.1 as "0.10000000000000000555". What's wanted is the minimum number of digits that does not lose information. You can use dtoastr to do that, which is what number-to-string does. E.g., something like the following (untested) C code. Although this assumes CGFloat is 'double', and outputs excess precision on 32-bit platforms where CGFloat is 'float', it would be easy to fix that if you like the idea. #include void example (CGFloat value) { char buf[DBL_BUFSIZE_BOUND]; NSTRACE ("float: %s", dtoastr (buf, sizeof buf, 0, 0, value)); }