From: | Sferacarta Software <sferac(at)bo(dot)nettuno(dot)it> |
---|---|
To: | Herouth Maoz <herouth(at)oumail(dot)openu(dot)ac(dot)il> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re[2]: [GENERAL] decimal_part() function |
Date: | 1998-12-21 13:29:11 |
Message-ID: | 11603.981221@bo.nettuno.it |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Hello Herouth,
martedì, 15 dicembre 98, you wrote:
HM> At 17:46 +0200 on 15/12/98, Sferacarta Software wrote:
>> I'm looking for a function similar to dtrunc() to return the decimal
>> part of a float.
>>
>> dtrunc(12.34) returns 12, I need something that returns 34
HM> Here is a table having one float column named k. % is the truncation
HM> operator (I suppose it's the same as dtrunc). so... k - %k gives you only
HM> the fraction:
testing=>> select k, %k, k - %k from test1;
HM> k|?column?| ?column?
HM> -----+--------+------------------
HM> 1.8| 1| 0.8
HM> 3.78| 3| 0.78
HM> 0.4| 0| 0.4
HM> 1.8| 1| 0.8
HM> 0.4| 0| 0.4
HM> 9.24| 9| 0.24
HM> 6| 6| 0
HM> 9.24| 9| 0.24
HM> 1.1| 1| 0.1
HM> -1.8| -1| -0.8
HM> -10.2| -10|-0.199999999999999
HM> (11 rows)
HM> If that's what you expect in the negative numbers, you're home free. If
HM> not, you can use some other operator combination.
HM> Herouth
I can't use this method because this has problems with precision, I
found this trick to have the decimal part with 3 decimal places...
prova=> select k, % k, k - %k, dround(date_part('millisecond',k)) from test;
k|?column?| ?column?|dround
-------+--------+-----------------+------
123.45| 123|0.450000000000003| 450
123.101| 123|0.100999999999999| 101
12.201| 12|0.201000000000001| 201
(3 rows)
Thanks any way.
-Jose'-
From | Date | Subject | |
---|---|---|---|
Next Message | Blashko Alexander | 1998-12-21 14:23:06 | Re: [GENERAL] vacuum problem |
Previous Message | Herouth Maoz | 1998-12-21 10:12:54 | Re: [GENERAL] Back end timeout? |