FoxPro/Visual FoxPro - numeros aleatorios

 
Vista:

numeros aleatorios

Publicado por paloma (1 intervención) el 05/12/2006 02:31:35
hola,necesito ayuda!!!

necesito generar numeros aleatorios del rango 0 al 1, pero con 3 digitos decimales, tengo la sintaxis

text1.value= RAND()

en foxpro 6.0
pero esto solo me genera numeros con dos digitos decimales, por ejemplo: 0.33,0.25 y yo quiero que salgan 0.234, 0.154, 0.368
como le puedo hacer para que me genere los demas digitos??????
ayudenme, por favor!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:numeros aleatorios

Publicado por Vicente (61 intervenciones) el 05/12/2006 02:51:14
Checate esto
SET FIXED ON
SET DECIMALS TO X

Donde X = al numero de decimales que quieres ver.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:numeros aleatorios

Publicado por Luighi (105 intervenciones) el 06/12/2006 03:48:22
en realidad los decimales sí se están generando, y no sólamente 2 ó 3, sino muchos más.
el problema esta en cómo se están mostrando los datos.

dos órdenes a tener en cuenta:
set fixed on | off
set decimals to [<expN>]

el valor predeterminado de set fixed es off
y el de set decimals es 2

así, si en una variable x tienes el número 0.478245
al mostrarlo, así:
? x
lo que verás en pantalla y como resultado será precisamente eso:
0.478245
eso siempre y cuando set fixed esté como off

si set fixed está como on, entonces tomará el valor definido en set decimals para mostrar el número:
set fixed on
? x
lo que verás ahora en pantalla será lo siguiente:
0.48
osea, un valor redondeado a 2 decimales.
sin embargo el contenido de la variable sigue siendo 0.478245

ahora si queremos ver 3 decimales y no 2
sólamente hacemos:
set decimals to 3
? x
y el resultado en pantalla será:
0.478
y claro, siempre y cuando set fixed esté establecido como on
si set fixed estuviera en off, lo que veremos en pantalla será lo siguiente:
0.478245

set fixed establecerá siempre cómo se muestran los datos en la pantalla
sin embargo las funciones que transforman números a texto van a depender siempre de set decimals

así pues, aún cuando set fixed esté como off
si hacemos:
? transform(x,'9.999999')
el resultado sera:
0.480000
redondéandolo de todas maneras
entonces será necesario hacer:
set decimals to 3
luego:
? transform(x,'9.999999')
y lo que veremos será finalmente:
0.478000
o en su defecto:
? transform(x,'9.999')
para ver:
0.478

set fixed
set decimals
revisemos un poco la ayuda e instruyámonos mejor.

saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar