Qual è il modo più efficace per troncare un numero per una precisione specifica?Qual è il modo più efficace per troncare un numero per una precisione specifica?
risposta
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:
Dopo aver eseguito sia il seguito sul codice mi post, il metodo della partita doppia funziona bene a causa di riutilizzo delle variabili. Su un'iterazione di 5.000.000 DateTime.Ora (in cui molti verranno saltati da entrambi i controlli), il metodo SubString()
ha richiesto 9598 ms e il metodo Double
ha richiesto 6754 ms.
EDIT # 2: modificato in * 1000 nei test per assicurarsi che le iterazioni siano in esecuzione.
codice utilizzato per testare come segue:
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();
In un DateTime
, Milliseconds sono sempre compreso tra 0 e 999 in modo da non avere a che fare.
Citando il link MSDN che ho postato nella mia risposta "Componente dei millisecondi, espressa come valore compreso tra 0 e 999." Sembra logico che tu non possa avere 32 giorni in un mese né più di 999ms in un secondo. –
Math.Floor(num * Math.Pow(10, x) + 0.5)/Math.Pow(10, x)
dove x la vostra precisione
Beh, penso di aver dato una risposta fuori dal contesto. comunque ho pensato che stavi chiedendo Rounding, comunque non riesco a capire cosa significa troncare anche nei numeri, ad ogni modo mi dispiace per non aver raccolto il contesto. –
- 1. Python è il modo più efficace per attendere l'input
- 2. Qual è il modo più efficace per determinare se un grafico diretto è collegato singolarmente?
- 3. Il modo più efficace per rimuovere più sottostringhe dalla stringa?
- 4. Qual è il modo più efficace per scrivere un'istruzione select con una sottoquery "not in"?
- 5. Qual è il modo più rapido per moltiplicare più celle per un altro numero?
- 6. Qual è il modo più efficace per chiedere a un MethodInfo quanti parametri ci vuole?
- 7. Qual è il modo più efficace per scorrere un elenco in python?
- 8. Qual è il modo più semplice ed efficace per creare un heap minimo in Scala?
- 9. Qual è il modo più efficace per trovare quali utenti hanno preferito un tweet specifico?
- 10. Qual è il modo più efficace per aggiungere uno std :: vector alla fine di un altro?
- 11. Qual è il modo più efficace per comprimere due lista annidata ad un unico dizionario livello
- 12. Il modo più efficace per trovare il numero intero più vicino in MySQL?
- 13. Qual è il modo più efficace per eliminare un numero elevato di oggetti (10.000+) in Core Data?
- 14. Il modo più efficace per correggere un JSON non valido
- 15. Qual è il modo più veloce per calcolare una grande potenza di 2 modulo un numero
- 16. sql più efficace per il recupero
- 17. Il modo più efficace per invertire l'ordine di un BitArray?
- 18. Qual è il modo migliore per troncare una data in SQL Server?
- 19. Qual è il modo più efficace per trovare la distanza euclidea in 3d usando mysql?
- 20. Qual è il modo più efficace per tagliare/incollare in Visual Studio?
- 21. Qual è il modo più efficace per rappresentare i valori algebrici di tipo finito (non ricorsivo)?
- 22. Qual è il modo più efficace per dichiarare le funzioni in Javascript?
- 23. Il modo più efficace per spostare le serie temporali MultiIndex
- 24. Un modo efficace per indicare più variabili indicatore per riga?
- 25. Qual è il modo più efficace per creare un'istanza BigInteger dal valore int?
- 26. Il modo più efficace per verificare se una pagina web è attiva?
- 27. Qual è un modo efficace per stabilire se una bitmap è completamente nera?
- 28. Il modo più efficace per determinare se una tabella Lua è vuota (non contiene voci)?
- 29. Qual è il modo più efficiente per ordinare un NSSet?
- 30. Qual è il modo più semplice in Javascript per ottenere solo il segno di un numero?
Dalle altre risposte, sembra che ci sia qualche ESP succedendo qui. Non sono un sensitivo, puoi per favore elaborare. – leppie
@leppie: Dalla revisione 1: 'Voglio ottenere le sole 3 cifre dei millisecondi di System.DateTime. –