X-Spam-Check-By: sourceware.org Message-ID: <4408B886.5010209@cs.unipr.it> Date: Fri, 03 Mar 2006 22:43:34 +0100 From: Roberto Bagnara User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.12) Gecko/20050929 Thunderbird/1.0.7 Fedora/1.0.7-1.1.fc4 Mnenhy/0.7.3.0 MIME-Version: 1.0 To: cygwin AT cygwin DOT com CC: "The Parma Polyhedra Library developers' list" Subject: Precision of doubles and stdio Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Hi there, the following little program #include int main() { double d; scanf("%lf", &d); printf("%.1000g\n", d); return 0; } does this on Linux/i686 $ gcc -W -Wall in.c $ a.out 70.9 70.900000000000005684341886080801486968994140625 and does the following under Cygwin on the same machine: roberto AT quark /tmp $ gcc -W -Wall in.c roberto AT quark /tmp $ ./a.exe 70.9 70.90000000000000568434188608080148696899414 Why? Is there a way to reconcile the two behaviors? Notice that I know about the x87 and its vaguaries: nonetheless I wonder why such a scanf immediately followed by a printf shows a difference between Cygwin and Linux. All the best, Roberto -- Prof. Roberto Bagnara Computer Science Group Department of Mathematics, University of Parma, Italy http://www.cs.unipr.it/~bagnara/ mailto:bagnara AT cs DOT unipr DOT it -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/