last i heard, 1 / 2 = 0 when working with integers.
are you, perhaps, thinking of the modulus operator?
(i.e.: 1 mod 2 = 1)
-joe-
(huddles@hasting.com)
----------
From: ilist
To: informix-list
Subject: Informix can't handle arithmetic expressions ?
Date: Friday, July 21, 1995 1:10PM
I was was really surprised, when I noticed that Informix
didn't evaluate arithmetic expressions right, 1 / 2 will be 0 , if stored in
a variable, 1 / 2 will be 1 in an arithmetic expression.
Is this a known bug (or feature) ?
A small piece of code follows to demonstate the effect.
Ciao Klaus
##################################################################
GLOBALS
DEFINE
p_wiederimma CHAR(3),
semi integer,
diffdata integer,
diffdata1 integer,
anz_hs integer,
p_hs_sem_ges CHAR(2),
JJi integer
END GLOBALS
MAIN
LET p_wiederimma = "931"
LET anz_hs = 14
LET p_hs_sem_ges = "13"
LET semi = p_wiederimma[1,2]
DISPLAY p_wiederimma," -> ",semi
LET JJi = semi - ((anz_hs - p_hs_sem_ges) / 2)
DISPLAY semi," - ((",anz_hs," - ",p_hs_sem_ges,") / 2) = ",JJi
LET diffdata = (anz_hs - p_hs_sem_ges)
DISPLAY diffdata," = ",anz_hs," - ",p_hs_sem_ges
LET JJi = semi - (diffdata / 2)
DISPLAY semi," - (",diffdata," / 2) = ",JJi
LET diffdata1 = diffdata / 2
DISPLAY diffdata1," = ",diffdata," / 2"
LET JJi = semi - diffdata1
DISPLAY semi," - ",diffdata1," = ",JJi
LET semi = JJi
END MAIN
produces the following output:
931 -> 93
93 - (( 14 - 13) / 2) = 92
1 = 14 - 13
93 - ( 1 / 2) = 92
0 = 1 / 2
93 - 0 = 93
What a weird arithmetic expression handling is this?
The division operator "/" ignores any reminder on division of two
integers (3-13U)
I'm using INFORMIX-OnLine Version 5.01.UD3
--
| Klaus Dobrindt dobrahs1@mailszrz.zrz.tu-berlin.de
|
| Turmstr. 44 tel.: (priv) +49 30 396 72 44
|
| 10551 Berlin (off) 3185-2737
|
| Germany fax : (off) -2781
|