Re[2]: [GENERAL] decimal_part() function

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'-

In response to

Browse pgsql-general by date

  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?