Re: [HACKERS] Bug: random() can return 1.0

2006-01-19 Thread Tom Lane
Bruce Momjian writes: > Because random returns a double, I think it is very possible that we > could return 1 due to rounding, Not unless your machine has a "double" type with less than 32 bits of precision, which seems pretty unlikely. It'd be sufficient to do /* result 0.0 <= x < 1.0

[HACKERS] Bug: random() can return 1.0

2006-01-19 Thread Andrew - Supernews
src/backend/utils/adt/float.c: /* * drandom - returns a random number */ Datum drandom(PG_FUNCTION_ARGS) { float8 result; /* result 0.0-1.0 */ result = ((double) random()) / ((double) MAX_RANDOM_VALUE); PG_RETURN_FLOAT8(result); }

Re: [HACKERS] Bug: random() can return 1.0

2006-01-19 Thread Bruce Momjian
Andrew - Supernews wrote: > src/backend/utils/adt/float.c: > > /* > *drandom - returns a random number > */ > Datum > drandom(PG_FUNCTION_ARGS) > { > float8 result; > > /* result 0.0-1.0 */ > result = ((double) random()) / ((double) MAX_RANDOM_VALU