Hozzászólások
-
SzerzőBejegyzés
-
Akkor hogyan ?
Mivel az alapproblémám az volt, hogy az értékek egy adattáblába kerülnek, ahova be van téve egy automatikus ellenõrzés, hogy a*b egyenlõ-e c-vel.
Az összehasonlítást és az értékkezelést sem lehet kikerülni, mind a kettõre szükség van.
[align=right][snapback]126907[/snapback][/align]abs(a*b-amineklenniekell)<1e-4
Code:main() {long double a,b,c;
a=65.14;
b=21160.0;
c=a*b;if((a*b)!=c)
printf(„nMost hibaztam!na:t%40.30Lgnb:t%40.30Lgnc:t%40.30Lgna*b:t%40.30Lgnn”,a,b,c,(a*b));
else
printf(„nMost eltalaltam!na:t%40.30Lgnb:t%40.30Lgnc:t%40.30Lgna*b:t%40.30Lgn”,a,b,c,(a*b));
}Most eltalaltam!
a: 65.1400000000000005684341886081
b: 21160
c: 1378362.40000000001202806743095
a*b: 1378362.40000000001202806743095long nélkül pedig:
Most hibaztam!
a: 65.1400000000000005684341886081
b: 21160
c: 1378362.39999999990686774253845
a*b: 1378362.39999999990686774253845csak hogy érdekes legyen! 🙂
Kösz, de evvel szerintem még nem oldódott meg a probléma, mivel c értéke kissé eltér a normálistól ( nem merem azt írni, hogy a végeredménytõl, mert manapság az már nem tudható biztosan :-)) ).
Sajnos most én nem tudom kipróbálni az általam talált doksiban említett két módszert:
1)-Wfloat-equal
Warn if floating point values are used in equality comparisons.The idea behind this is that sometimes it is convenient (for the
programmer) to consider floating-point values as approximations to
infinitely precise real numbers. If you are doing this, then you
need to compute (by analyzing the code, or in some other way) the
maximum or likely maximum error that the computation introduces,
and allow for it when performing comparisons (and when producing
output, but thatâs a different problem). In particular, instead of
testing for equality, you would check to see whether the two values
have ranges that overlap; and this is done with the relational
operators, so equality comparisons are probably mistaken.$ gcc t.c
$ ./a.outMost hibáztam!
a: 65.1400
b: 21160.0000
c: 1378362.4000
a*b: 1378362.4000$ gcc -fsingle-precision-constant t.c
$ ./a.outMost eltaláltam!
a: 65.1400
b: 21160.0000
c: 1378362.3871-fsingle-precision-constant
Treat floating point constant as single precision constant instead
of implicitly converting it to double precision constant.$ gcc -v
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/3.3.2/specs
Configured with: ../configure –prefix=/usr –mandir=/usr/share/man –infodir=/usr/share/info –enable-shared –enable-threads=posix –disable-checking –with-system-zlib –enable-__cxa_atexit –host=i386-redhat-linux
Thread model: posix
gcc version 3.3.2 20031022 (Red Hat Linux 3.3.2-1)Amúgy egy ilyen szerkentyûre nem lehet linuxot telepíteni?
[align=right][snapback]126521[/snapback][/align]de lehet, én már eredetileg is így értettem a kérdést 😉 ott vannak a linkek amiket írtam, azokat olvasgasd!
ez: http://www.go-mono.com/archive/1.0.6/windo…2-win32-0.3.exe
miért is nem jó?
ds:
nem, mert igy minden debug szintu uzenetet lekezelsz; es mondjuk bela szertne latni a grsec uezentetit a syslogban (mert arra ‘watch tail’ol);anno 0.8as firestarter faqjaban volt arrol szo, hogy majd (_majd_ 😉 a 2.6 kernelben lehet kulon loggolni a netfilter esemenyeit es igy nem szeemtel mindet tele;
[align=right][snapback]125437[/snapback][/align]most nem azért hogy belédkössek (mert igazad van 1ébként) de ha ezt meg ezt akarja…, és ha mondjuk nem is iptablest használok, meg ha nagypapámnak kereke lett volna vagy ilyesmi….
amit mondtam az 1 megoldás lehet, azért írtam a debug levelt mert azt nem gyakran használják (az eddigi tapasztalataim alapján)
de akkor még mindig ott van az ulog, de ahhoz nem írok megfejtést 🙂
Jojo, lehet hogy 3rd party kulon dolgokkal ki lehet hozni belole gui -t, de az official pure bináris alapvetöen nem tartalmaz ilyet.
végülis nem értem minek az amugy is 🙂
[align=right][snapback]124695[/snapback][/align]ez az official pure bináris mellé csomagolt másik official pure bináris 🙂
valek:
„Fatal error: Your kernel does not support iptables.
Firewall not started”
a deb_deskben osszeszedtem azokat az opciokat, amik a firestarterk kellenek;ds:
„man syslog.conf
man iptables (ulog, de szerintem a syslog egyszerûbb)”
ez igy marhara semmitmondo;
konkret megoldas?
[align=right][snapback]124628[/snapback][/align]ez így marhára rtfm mi? :)))
kb
/etc/syslog -ba
kern.debug /var/log/iptables.logaztán:
iptables -A INPUT -j LOG –log-level debug
🙂nameg killall -HUP syslogd
de igen csak valamiért nálam nem mûkszik!!! 🙁
pedig rootként futtatom ….
[align=right][snapback]124724[/snapback][/align]kicsit pontosabban? _pontosan_ mit próbálsz futtatni? mi a hibaüzenet?
-
SzerzőBejegyzés
legutóbbi hsz