Download Latest Version tpc-c-ifmx.tar.gz (392.7 kB)
Email in envelope

Get an email when there's a new version of IIUG Software Repository

Home / Informix4GL-Tools / prt_decimal
Name Modified Size InfoDownloads / Week
Parent folder
decsci.c 2020-05-11 7.0 kB
readme.txt 2020-05-11 3.5 kB
Totals: 2 Items   10.4 kB 0
Subject: USING keyword
Newsgroups: comp.databases.informix

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

From: adel@q8petroleum.com.kw
Date: Sun, 17 Mar 96 14:40:17 GMT

Hi INFORMIX' ers

filed1 is decimal(10,6)
 filed1 may be up to 6 decimal or 2 decimal

How would I prevent trailing zeroes from being printed
(i.e. filed1=148.33 will be printed using ###.###### format as 148.330000)
I must use ###.###### format because it may be up to 6 decimal..

any hints.....

thanks........................

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

From: cmm@trac3000.ueci.com (Colin McGrath)
Date: 21 Mar 1996 17:18:20 -0500

adel@q8petroleum.com.kw wrote:
>
> filed1 is decimal(10,6)
> filed1 may be up to 6 decimal or 2 decimal
>
> How would I prevent trailing zeroes from being printed
> (i.e. filed1=148.33 will be printed using ###.###### format as 148.330000)
> I must use ###.###### format because it may be up to 6 decimal..
>

Place the number in a character field and clean it up, as follows:

LET char_field1 = field1 using "##&.######"
FOR idx = 10 to 5 STEP -1
   IF char_field1[idx] != "0" THEN
      EXIT FOR
   ELSE
      LET char_field1[idx] = " "
   END IF
END FOR

-- 
Colin McGrath                             <Standard disclaimers apply>
Internet: cmm@trac3000.ueci.com   Voice: 215-422-4144   FAX: 215-422-1445

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

From: johnl@informix.com (Jonathan Leffler)
Date: 21 Mar 1996 17:48:19 -0500

Put simply, you can't do it with USING.

I attach some code which I am sure I have previously published on
the net, which is different from the USING code.  It does not
actually have an option for suppressing trailing zeroes, but you
could easily provide one, somehow, if you are a C programmer.  If
not, maybe some kind soul will do it for you, but I wouldn't hold
my breath waiting.

Yours,
Jonathan Leffler (johnl@informix.com) #include <disclaimer.h>

>From: adel@q8petroleum.com.kw
>Date: Sun, 17 Mar 96 14:40:17 GMT
>X-Informix-List-Id: <news.22361>
>
>filed1 is decimal(10,6)
> filed1 may be up to 6 decimal or 2 decimal
>
>How would I prevent trailing zeroes from being printed
>(i.e. filed1=148.33 will be printed using ###.###### format as 148.330000)
>I must use ###.###### format because it may be up to 6 decimal..

From: brent@advgroup.co.nz (Brent Jackson)
Date: Sun, 24 Mar 1996 21:49:26 GMT

johnl@informix.com (Jonathan Leffler) wrote:

>Put simply, you can't do it with USING.

>>From: adel@q8petroleum.com.kw
>>Date: Sun, 17 Mar 96 14:40:17 GMT
>>X-Informix-List-Id: <news.22361>
>>
>>filed1 is decimal(10,6)
>> filed1 may be up to 6 decimal or 2 decimal
>>
>>How would I prevent trailing zeroes from being printed
>>(i.e. filed1=148.33 will be printed using ###.###### format as 148.330000)
>>I must use ###.###### format because it may be up to 6 decimal..

If you are using 4GL then I think you can do it with USING, but you require
an if statement and two USING clauses.  Something like :

	LET temp_value = filed1 * 100
	IF (temp_value * 10000) = (filed1 * 1000000) THEN
		PRINT filed1 USING "###.##"
	ELSE
		PRINT filed1 USING "###.######"
	END IF

This is untested, but should give you the general idea.


Cheers,
        Brent Jackson.

brent@hypercom.co.nz   Phone : 64-9-3603593  Fax : 64-9-3602840

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Source: readme.txt, updated 2020-05-11