Powiedziano mi, że dziesiętny jest zaimplementowany jako typ zdefiniowany przez użytkownika, a inne typy C#, takie jak int, mają dedykowane dla nich opkody. Jaki jest tego powód?Dlaczego dziesiętny w C# różni się od innych typów C#?
Odpowiedz
decimal
nie jest tu sam; DateTime
, TimeSpan
, Guid
itd. Są również niestandardowymi typami. Sądzę, że głównym powodem jest to, że nie mapują one na prymitywy CPU. float
(IEEE 754), int
itd. Są dość wszechobecne, ale decimal
jest dostosowywany do .NET.
To naprawdę tylko powoduje problem, jeśli chcesz porozmawiać z operatorami bezpośrednio poprzez odbicie (ponieważ nie istnieją one w int itp.). Nie mogę wymyślić żadnych innych scenariuszy, w których zauważysz różnicę.
(faktycznie, nadal istnieją kodowanym etc do reprezentowania innych - są one po prostu brakuje większość tego, co można oczekiwać, aby być w im, takich jak operatorzy)
„Co to rozumowanie za tym ? "
Dziesiętna matematyka jest obsługiwana w oprogramowaniu w porównaniu ze sprzętem. Obecnie wiele procesorów nie obsługuje natywnej metody dziesiętnej (finansowej dziesiętnej lub płynnej). Zmienia się to jednak wraz z przyjęciem IEEE 754R.
Zobacz także:
- 1. Maniak perłowy różni się od innych debli
- 2. Dlaczego notacja Postfiks JavaScript różni się od C i Perla?
- 3. dziesiętny w C# nieporozumienie?
- 4. hmac-sha1 w ruby różni się od C# HMACSHA1
- 5. Dlaczego [:] = 1 zasadniczo różni się od [:] = "1"?
- 6. Pandy: dlaczego pandas.Series.std() różni się od numpy.std()
- 7. Pandy: dlaczego pandas.Series.std() różni się od numpy.std()
- 8. Dlaczego "gevent.spawn" różni się od monkeypatched `threading.Thread()`?
- 9. Dlaczego wynik tej wyraźnej obsady różni się od niejawnej?
- 10. Czy "not e in c" różni się od "e not in c" w Pythonie?
- 11. C# == różni się w typach wartości i typach odniesienia?
- 12. Dlaczego generics w Javie? Czym różni się od przeciążania?
- 13. Dlaczego re2 różni się od re modułu w Pythonie?
- 14. Dlaczego sygnatura foldBack różni się od fałdu w F #?
- 15. Dlaczego właściwość target zdarzenia kółka myszy różni się od zdarzeń innych zdarzeń (kliknięcie, mousedown, dotykowy)?
- 16. Pokój vs dziesiętny Zaokrąglanie w C#
- 17. W jaki sposób in statyczna inicjalizacja statyczna floata różni się od int w C++?
- 18. Czym różni się insmod od modprobe?
- 19. Dlaczego wartość * = różni się od utraty danych podczas konwersji?
- 20. dlaczego $ (document) .height() różni się od $ (document.body) .height()?
- 21. Dlaczego binarny GUID różni się od zwykłej reprezentacji
- 22. Dlaczego zwracana wartość Request.Form.ToString() różni się od wyniku NameValueCollection.ToString()
- 23. Czym różni się LinkedBlockingQueue od ConcurrentLinkedQueue?
- 24. Dlaczego (1/2) * x różni się od 0,5 * x?
- 25. Modelowanie typów w C++
- 26. Dlaczego wykonywanie getChar w terminalu różni się od wykonywania go w GHCi?
- 27. W jaki sposób pojęcie statyczne w języku Java różni się od C#?
- 28. W jaki sposób funkcja async-await w C# 5.0 różni się od licencji TPL?
- 29. W jaki sposób local() różni się od innych podejść do zamknięcia w R?
- 30. Jak działająca aplikacja C# w programie profilującym kod różni się od uruchamiania jednego zewnętrznego profilera kodu?
myślę, że chodzi o to, że dziesiętnego jest jedynym typem, który staje się jego własne słowa kluczowego w C#, ale nie jest traktowany specjalnie przez CLR. –