#include <cmath>
#include <limits>
// log10(x) == (n - 1) digits
// (1 + n + fff) == number of digits
// fff == floating-point fudge factor
int digits(int number)
{
// Avoid doing work if number is 0
if (number != 0)
{
double lg = std::log10(static_cast<double>(std::abs(number)));
double eps = std::numeric_limits<double>::epsilon();
return static_cast<int>(1 + lg + eps);
}
else
return 1;
}
// Count until 0 and chop of every tenth
int digits2(int num)
{
// Avoid doing work if number is 0
if (num != 0)
{
int n = 0;
while (num > 0)
{
++n;
num /= 10;
}
return n;
}
else
return 1;
}
C++ Contar los dígitos de un número
Código para contar los dígitos de un número entero: Fuente
C++ Autoincremento de nombre
Función para incrementar un nombre de algo añadiendole números. Útil cuando es necesario un nombre único.
Esta función fue usada en SOA_SetOfAngles para ponerle nombre a la lista de puntos.
Una versión fue usada en DXF2LandXml para ponerle nombre a los puntos repetidos.
¡Se puede mejorar haciendo uso de las funciones de la siguiente entrada!
void IncName( StringC& strName, int nCount, int nMaxChars )
{
int nCountDigit = 1;
while( (nCount / pow(10.0,nCountDigit)) >= 1.0 )
{
nCountDigit++;
}
StringC strFormat;
strFormat.Format( L"%%s_%d", nCount );
strName.Format( strFormat, (const wchar_t*)strName.Mid( 0, nMaxChars-nCountDigit-1 ) );
}
Esta función fue usada en SOA_SetOfAngles para ponerle nombre a la lista de puntos.
Una versión fue usada en DXF2LandXml para ponerle nombre a los puntos repetidos.
C# Generics y Find
Para buscar en una lista genérica en C# un elemento que cumpla una determinada condición existe la función:
Para realizar una búsqueda usando Find en una sola línea de código podemos usar los Métodos Anónimos incluidos en .NET 2.0. Los métodos anónimos permiten asociar código a los objetos delegados directamente.
Así, para buscar un valor dentro de una lista con Find podremos hacer por ejemplo:
public T Find Predicate match
Para realizar una búsqueda usando Find en una sola línea de código podemos usar los Métodos Anónimos incluidos en .NET 2.0. Los métodos anónimos permiten asociar código a los objetos delegados directamente.
Así, para buscar un valor dentro de una lista con Find podremos hacer por ejemplo:
int result = CgPointCollection.Find(
delegate( XmlCgPoint point ) { return point.Name == nameToFind; } );
Suscribirse a:
Entradas (Atom)