From(投稿者): | Fujii Hironori <fujii@chi.its.hiroshima-cu.ac.jp> |
---|---|
Newsgroups(投稿グループ): | fj.comp.lang.c |
Subject(見出し): | sqrt (x*x) == x |
Date(投稿日時): | Sat, 23 Aug 2003 16:50:12 +0900 |
Organization(所属): | Hiroshima City University Graduate School |
Message-ID(記事識別符号): | (G) <878ypku823.wl@anago2.mas.chi.its.hiroshima-cu.ac.jp> |
Followuped-by(子記事): | (G) <bi79eu$60g$1@news01dd.so-net.ne.jp> |
sqrt (x*x) == x が真となることを前提としたプログラムを見たのですが、 真となるものですか。 sqrt をニュートン法で誤差が十分小さくなったら終了とし、 誤差がでる処理系があるのではないかと思いまして。 ちなみに、いくつか実験したら真でした。 #include <stdio.h> #include <math.h> #define test(x) printf ("%s " #x "\n", sqrt (x*x) == x ? "t" : "f") int main (void) { test (3.0); test (3); test (123.456); return 0; }