Obtener la cantidad de cifras de un numero
Hola, quisiera saber si existia algún método matematico para calcular la cantidad de cifras que tiene un número dado, sin tener que convertir este numero a string y con la funcion Length saber esto, asi se hacer muy facil en Delphi pero lo que quiero como habia dicho es un algoritmo/calculo matematico para saber cuantas cifras tiene un número,
muchas gracias de antemano, saludos aeff!! |
No es una función matemática, pero yo haría algo así :
Código:
n = 1 n es la cantidad de digitos que tiene Supongo que con los logaritmos en base 10 también se puede hacer algo, pero de mis clases de matemáticas ya no me acuerdo; |
Una forma sencilla de implementar seria:
Saludos |
bueno, muchas gracias por sus respuestas colegas, realmente no tenia ni idea de como hacer esto que ustedes me han enseñado a hacer matemáticamente,
muchas gracias, muchas garcias, saludos, aeff!! |
Creo que debes aplicar el Logaritmo (en base 10) al número del que deseas saber las cifras.
Log(1)=>0 Log(9)=>0,95... Log(10)=>1 Log(11)=>1,04... Log(99)=>1,99... Log(100)=>2 ... Log(999999)=>5,999.... Log(1000000)=>6 ...
|
Genial Neftali!!!
Este es un verdadero método METEMATICO de hacerlo. Sabía que los logaritmos tenían algo que ver con esto. |
saludos, muchars gracias [Neftali], está super-bueno ese método, no pensé que con logaritmos se podía determinar la cantidad de cifras de un número, pero esto de logaritmos no lo entiendo muy bien, ¿alguien me puede dar una explicación de los logaritmos en base 10?
muchas gracias, saludos aeff!! |
Cita:
10^1=10 (2 cifras) 10^2=10*10=100 (3 cifras) 10^3=10+10+10=1000 (4 cifras) 10^4=14*10*10*14=10000 ... 10^23434=.....= Aunque no lo calcules puedes asegurar que tendrá 23435 cifras. No es casualidad que cada potencia añada una nueva cifra, es que el sistema decimal está basado en "base 10", igual que el octal es en "base 8" o el binario en "base 2". De la misma forma podrías obtener las cifras para determinado número en binario, sempre que aplicaras en ese caso el logaritmo en base 2. No se si te he aclarado algo...:o |
Cita:
Más claro... no se puede :) |
Que bonitos los logaritmos, hubo una época (que yo no viví :D ) en la que no había calculadoras, y se utilizaban sus propiedades para hacer cálculos complejos. Supongo que aeff, si tiene la edad que aparece en su perfil, no ha visto todavía lo bonitas y lo horribles que pueden ser las matemáticas. Yo era de los que disfrutaba con logaritmos, senos, cosenos, derivadas e integrales, las matemáticas resultaban fascinantes :) . Luego llegue a primero de carrera y me tope con Álgebra y Calculo, y ahí se me quitaron todas las ganas de seguir con las matemáticas :p :D (bueno, después de eso tuve tiempo para un poco de trigonometría esférica, lastima que ya no me acuerde de casi nada :( )
En resumen, que bonitas las matemáticas y que bonitos los logaritmos :D |
verdaderamente me han decho que las matemáticas se ponen hiper-feas y a la vez hiper-bonitas, pero aun así con esa "discrepancia de opiniones" me gustaría seguir estudiandola, entendí lo que me quizo decir [Neftali], pero lo que quize preguntar fue que como doy solución a los algoritmos en base 10, por ejemplo:
log 52 = ??? 10 ¿me hago entender? muchas gracias colegas saludos aeff!! |
Cita:
Sin embargo si añades la unidad math, ya puedes usar la función log10 para calcular el logaritmo base 10. |
Cita:
|
La franja horaria es GMT +2. Ahora son las 16:51:15. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi