¿Cuál es la forma más eficiente de truncar un número para una precisión específica?¿Cuál es la forma más eficiente de truncar un número para una precisión específica?
Respuesta
int ms = Convert.ToInt32(
Convert.ToString(DateTime.Now.Millisecond).Substring(0, 3));
o
double Length = Math.Pow(10, (DateTime.Now.Millisecond.ToString().Length - 3));
double Truncate = Math.Truncate((double)DateTime.Now.Millisecond/Length);
EDIT:
Después de ejecutar tanto el siguiente en el código Voy a publicar, el método de doble funciona bien debido a la reutilización de variables. En una iteración de 5.000.000 de DateTime.Now (en la que muchos serán omitidos por ambos controles), el método SubString()
tomó 9598ms, y el método Double
tomó 6754ms.
EDIT # 2: Editado en * 1000 en pruebas para asegurarse de que las iteraciones se estén ejecutando.
Código utilizado para probar la siguiente manera:
Stopwatch stop = new Stopwatch();
stop.Start();
for (int i = 0; i < 5000000; i++)
{
int MSNow = DateTime.Now.Millisecond * 1000;
if (MSNow.ToString().Length > 2)
{
int ms = Convert.ToInt32(
Convert.ToString(MSNow).Substring(0, 3));
}
}
stop.Stop();
Console.WriteLine(stop.ElapsedMilliseconds);
stop = new Stopwatch();
stop.Start();
for (int i = 0; i < 5000000; i++)
{
int MSNow = DateTime.Now.Millisecond * 1000;
int lengthMS = MSNow.ToString().Length;
if (lengthMS > 2)
{
double Length = Math.Pow(10, (lengthMS - 3));
double Truncate = Math.Truncate((double)MSNow/Length);
}
}
stop.Stop();
Console.Write(stop.ElapsedMilliseconds);
Console.ReadKey();
En un DateTime
, Milliseconds están siempre comprendido entre 0 y 999 por lo que no tiene nada que ver.
Citando el enlace de MSDN que publiqué en mi respuesta "El componente milisegundos, expresado como un valor entre 0 y 999". Parece lógico que no puedas tener 32 días en un mes ni más de 999ms en un segundo. –
Math.Floor(num * Math.Pow(10, x) + 0.5)/Math.Pow(10, x)
donde x su precisión
Bueno, creo que he dado una respuesta fuera de contexto. sin embargo, pensé que estaba pidiendo Rounding. De todos modos, no puedo obtener lo que truncar significa incluso en números, de todos modos lo siento por no captar el contexto. –
- 1. ¿Cuál es la forma más eficiente de ordenar un NSSet?
- 2. ¿Cuál es la forma más eficiente de crear ListBuffer vacío?
- 3. ¿Cuál es la forma más eficiente de eliminar un número grande (más de 10.000) objetos en Core Data?
- 4. ¿Cuál es la forma más eficiente de almacenar una matriz de enteros en una columna MySQL?
- 5. ¿Cuál es la expresión regular más eficiente?
- 6. Inicializando ... ¿cuál es más eficiente?
- 7. ¿Cuál es la forma más eficiente de copiar de forma masiva a SQL Server desde Java?
- 8. ¿Cuál es la forma más eficiente de iterar a través de una lista en python?
- 9. ¿Cuál es la forma más eficiente de agregar un reflejo a un UIImageView
- 10. ¿Cuál es la forma más eficiente de crear un sistema de bombilla de foro (no leída)?
- 11. ¿Cuál es la forma más eficiente de encontrar una de varias subcadenas en Python?
- 12. ¿Cuál es la forma más eficiente de crear un sistema de permisos?
- 13. ¿Cuál es la forma más eficiente de mover/cambiar el nombre de un nodo en NetworkX?
- 14. La forma más eficiente para obtener todos los divisores de un número
- 15. ¿Cuál es la forma más eficiente de obtener un arenero limpio de git?
- 16. ¿Cuál es la forma más eficiente de administrar un gran conjunto de líneas en OpenGL?
- 17. Algoritmo de clasificación más rápido para una situación específica
- 18. ¿Cuál es la forma más eficiente de atravesar un árbol en Python?
- 19. ¿Cuál es la forma más eficiente de evitar operaciones duplicadas en una matriz de C#?
- 20. ¿Cuál es la forma más eficiente de formatear la siguiente cadena?
- 21. ¿Cuál es la forma más eficiente de generar las combinaciones de un conjunto en python?
- 22. ¿Cuál es la forma más eficiente/elegante de eliminar elementos de una matriz en MATLAB?
- 23. Java: ¿Cuál es la forma más eficiente de sincronizar una ArrayList?
- 24. ¿Cuál es la forma más eficiente de ejecutar funciones asíncronas en PHP?
- 25. ¿Cuál es la forma más eficiente de copiar en profundidad un objeto en Ruby?
- 26. Forma más eficiente de encontrar si una lista grande contiene una cadena específica (Python)
- 27. WPF: ¿cuál es la forma más eficiente/rápida de agregar elementos a un ListView?
- 28. MongoDB: ¿Cuál es la forma más eficiente de consultar un único documento aleatorio?
- 29. ¿Cuál es la forma más eficiente de agregar un std :: vector al final de otro?
- 30. Cuál es la forma más eficiente de hacer operaciones bit a bit en una matriz C
De las otras respuestas, parece que hay una cierta ESP pasando aquí. No soy un psíquico, ¿pueden explicarme mejor? – leppie
@leppie: De la revisión 1: 'Quiero obtener los únicos 3 dígitos de los milisegundos de System.DateTime'. –