Mostrando entradas con la etiqueta Entero. Mostrar todas las entradas
Mostrando entradas con la etiqueta Entero. Mostrar todas las entradas

2014-01-15

Convertir texto en número conservando los decimales en Access

Para convertir en Access una cadena de texto en número, como por ejemplo texto importado, es recomendable usar la función CDoble en lugar de Val. La documentación nos informa de lo siguiente:

La función Val sólo reconoce el punto (.) como separador decimal válido. Cuando se utilizan separadores decimales diferentes, como en aplicaciones internacionales, debe utilizar CDoble para convertir una cadena a un número.

Por tanto, cuando Access lee el campo de texto, convierte el número en entero. Para evitarlo, en nuestras consultas usaremos la función CDoble que conservará los decimales del campo. Podemos usar la función Val en el caso de que trabajemos exclusivamente con números enteros.


En SQL, la sintaxis sería:
SELECT Tabla.Texto AS Texto, Val([Texto]) AS Val, CDbl([Texto]) AS CDoble
FROM Tabla;

2013-03-22

Generar números aleatorios entre dos valores con decimales

Title

Excel para Microsoft 365

Utilizamos la función MATRIZALEAT con la que podemos elegir, entre un mínimo y un máximo, si queremos que nos devuelva números enteros o valores decimales. También podemos elegir el número de filas y columnas a rellenar. Si deseamos copiar o arrastrar la fórmula dejamos dichos argumentos vacíos:

=MATRIZALEAT(,,0,10)

Versiones anteriores

En Excel hay dos funciones para generar número aleatorios:

  1. ALEATORIO, que genera un número aleatorio entre 0 y 1, con hasta 15 decimales. 
  2. ALEATORIO.ENTRE, que genera un número aleatorio entre dos límites especificados.
Pero si necesitamos un número aleatorio entre dos valores con decimales, no podemos usar directamente ALEATORIO.ENTRE pues genera solamente números enteros. Para circunvenir esta limitación, siendo a el límite inferior y b el superior, podemos usar:

=a+ALEATORIO()*(b-a)
Otra opción es multiplicar los dos límites por un 1 seguido de tantos ceros como decimales necesitemos, y luego dividir el resultado por dicho número. Por ejemplo, si necesitamos dos decimales, por cien:

=ALEATORIO.ENTRE(a*100;b*100)/100 'O si no queremos repetir 3 veces 100
=ALEATORIO.ENTRE(a;b)+ALEATORIO.ENTRE(a;b)/100
Con ALEATORIO, encontramos la limitación opuesta, si deseamos generar números enteros. REDONDEAR permite especificar el número de decimales. Por ejemplo, si queremos obtener ceros o unos:

=REDONDEAR(ALEATORIO();0)'O simplemente
=ALEATORIO.ENTRE(0;1)
Porque si usamos:

=ENTERO(ALEATORIO())
obtendremos siempre ceros pues ENTERO redondea al entero inferior más próximo.

Entradas relacionadas

Nube de datos