Decimale vs Doppia velocità

Scrivo applicazioni finanziarie in cui combatto costantemente la decisione di utilizzare un doppio vs utilizzando un decimale.

Tutti i miei calcoli funzionano su numeri con non più di 5 cifre decimali e non sono superiori a ~ 100.000. Ho la sensazione che tutti questi possono essere rappresentati come doppi in ogni caso senza errori di arrotondamento, ma non sono mai stati sicuri.

Vorrei andare avanti e passare da decimali a doppi per l’ovvio vantaggio di velocità, tranne che alla fine della giornata, utilizzo ancora il metodo ToString per trasmettere i prezzi agli scambi, e devo assicurarmi che emetta sempre il numero I aspettarsi. (89,99 anziché 89,99000000001)

Domande:

  1. Il vantaggio in termini di velocità è tanto grande quanto suggerito dai test ingenui? (~ 100 volte)
  2. C’è un modo per garantire che l’output di ToString sia quello che voglio? Questo è assicurato dal fatto che il mio numero è sempre rappresentabile?

AGGIORNAMENTO: devo elaborare circa 10 miliardi di aggiornamenti di prezzo prima che la mia app possa essere eseguita, e ora ho implementato con decimale per ovvi motivi di protezione, ma ci vogliono circa 3 ore solo per accenderlo, i doppi ridurranno drasticamente il mio tempo di accensione . C’è un modo sicuro per farlo con i doppi?