/ / Czy (int) myDouble różni się od (int) Math.Truncate (myDouble)? - c #, .net, matematyka

Czy (int) myDouble różni się kiedykolwiek od (int) Math.Truncate (myDouble)? - c #, .net, matematyka

Robi (int)myDouble zawsze różnią się od (int)Math.Truncate(myDouble)?

Czy jest jakiś powód, dla którego powinienem preferować jedno nad drugim?

Odpowiedzi:

8 dla odpowiedzi № 1

Math.Truncate jest przeznaczony, gdy chcesz zachować wynik jako podwójny bez części ułamkowej. Jeśli chcesz przekonwertować go na int, po prostu użyj bezpośrednio obsady.

Edytować: W celach informacyjnych, oto odpowiednia dokumentacja z „Jawna tabela konwersji liczbowych”:

Podczas konwertowania wartości typu double lub float na typ całkowity wartość jest obcinana.


5 dla odpowiedzi nr 2

Jak wskazano przez Ignacio Vazquez-Abrams (int)myDouble zawiedzie w taki sam sposób, jak (int)Math.Truncate(myDouble) kiedy myDouble jest za duże.

Więc nie ma różnicy w produkcji, ale (int)myDouble działa szybciej.