Typy liczbowe w języku C# (jak to działa dla programistów)
W języku C# typy numeryczne to zbiór typów danych służących do przechowywania liczb, które można podzielić na dwie główne kategorie: typy całkowitoliczbowe i typy zmiennoprzecinkowe. Każda kategoria ma swoje unikalne cechy i zastosowania.
Typy liczbowe stanowią podstawę wielu operacji w języku C#, od obliczeń finansowych i monetarnych po złożone algorytmy. Jeśli chcesz opanować język C#, musisz opanować te typy wartości.
Typy danych całkowitoliczbowych
Typy danych całkowitoliczbowych służą do przechowywania liczb całkowitych i mogą być ze znakiem (możliwość przechowywania zarówno liczb dodatnich, jak i ujemnych) lub bez znaku (możliwość przechowywania wyłącznie liczb dodatnich). Oto zestawienie typów liczb całkowitych w języku C#:
byte
Bajt jest najmniejszym typem liczby całkowitej. Jest to typ bezznakowy o wartości domyślnej 0, zdolny do przechowywania wartości od 0 do 255.
sbyte
Sbyte jest odpowiednikiem bajtu ze znakiem. Może przechowywać wartości od -128 do 127, przy czym wartość domyślna wynosi 0.
short
Typ short to 16-bitowa liczba całkowita ze znakiem. Ma większy zakres niż byte i sbyte, od -32 768 do 32 767, a jego wartością domyślną jest 0.
ushort
ushort jest bezznakowym odpowiednikiem typu short. Może przyjmować wartości od 0 do 65 535. Jego wartością domyślną jest również 0.
int
Typ int to 32-bitowa liczba całkowita ze znakiem, o zakresie od -2 147 483 648 do 2 147 483 647. Wartością domyślną zmiennej całkowitej typu int jest 0.
uint
Typ uint, skrót od "unsigned integer" (liczba całkowita bez znaku), może przyjmować wartości od 0 do 4 294 967 295. Jego wartością domyślną jest 0.
long
Long to 64-bitowy typ liczby całkowitej ze znakiem, zdolny do przechowywania wartości od -9 223 372 036 854 775 808 do 9 223 372 036 854 775 807. Wartością domyślną typu long jest 0L.
ulong
Typ ulong, czyli unsigned long, może przechowywać wartości od 0 do 18 446 744 073 709 551 615. Jego wartością domyślną jest 0UL.
Typy liczb zmiennoprzecinkowych
Typy zmiennoprzecinkowe służą do przechowywania liczb z przecinkiem dziesiętnym. Liczba zmiennoprzecinkowa zapewnia znacznie szerszy zakres wartości niż typy całkowitoliczbowe, ale wiąże się to z pewnym kompromisem w zakresie precyzji. Oto typy zmiennoprzecinkowe w języku C#:
float
Typ float to 32-bitowy typ zmiennoprzecinkowy. Może reprezentować wartości od około 1,5 x 10^-45 do 3,4 x 10^38, z dokładnością do 7 cyfr. Wartością domyślną zmiennej zmiennoprzecinkowej typu float jest 0.0f.
double
Typ double jest typem zmiennoprzecinkowym 64-bitowym. Może reprezentować wartości od około 5,0 x 10^-324 do 1,7 x 10^308, z dokładnością do 15–16 cyfr. Wartością domyślną typu double jest 0.0d.
decimal
Typ decimal jest typem danych 128-bitowym. Jest często używany podczas wykonywania obliczeń finansowych wymagających dużej precyzji. Może reprezentować wartości od około 1,0 x 10^-28 do 7,9 x 10^28, z dokładnością do 28–29 cyfr. Wartością domyślną typu decimal jest 0,0m.
Zrozumienie typów liczb całkowitych o rozmiarze natywnym
Typy liczb całkowitych o rozmiarze natywnym to specjalne typy w języku C#, których rozmiar różni się w zależności od platformy, na której działa kod. Zostały one zaprojektowane w celu zapewnienia najbardziej efektywnego wykorzystania pamięci do przechowywania wartości całkowitoliczbowych.
IntPtr
IntPtr to typ liczby całkowitej ze znakiem, który ma taką samą szerokość jak wskaźnik. Oznacza to, że jest to wersja 32-bitowa na platformach 32-bitowych i 64-bitowa na platformach 64-bitowych. Jest to przydatne podczas wykonywania zadań związanych ze wskaźnikami lub pamięcią, a domyślną wartością typu IntPtr jest 0.
UIntPtr
UIntPtr, bezznakowy odpowiednik IntPtr, ma również taki sam rozmiar jak wskaźnik. Zapewnia ten sam zakres wartości co IntPtr na tej samej platformie, ale tylko dla wartości nieujemnych. Wartością domyślną typu UIntPtr jest również 0.
Konwersja między typami liczb całkowitych i zmiennoprzecinkowych
W zależności od przypadku użycia ważne jest, aby w kodzie używać właściwego typu danych. W wielu przypadkach może się zdarzyć, że masz wartość jednego typu, a musisz użyć jej jako innego typu.
Konwersje niejawne odbywają się automatycznie, gdy wartość, która ma zostać przekonwertowana, zmieści się w nowym typie danych bez utraty jakichkolwiek informacji. Na przykład można niejawnie przekonwertować typ int na long, ponieważ typ long może przechowywać tę samą wartość co int.
W przypadku ryzyka utraty danych wymagane są jawne konwersje, znane również jako rzutowanie. Na przykład konwersja typu long na int może spowodować utratę danych, jeśli wartość typu long jest większa niż ta, którą może pomieścić typ int.
Aby jawnie rzutować wartość z jednego typu na inny, można użyć operatora rzutowania ():
long myLong = 5000L;
int myInt = (int)myLong; // This is an explicit cast from long to int.
// Be cautious if myLong > 2,147,483,647 as it may cause data loss.
long myLong = 5000L;
int myInt = (int)myLong; // This is an explicit cast from long to int.
// Be cautious if myLong > 2,147,483,647 as it may cause data loss.
Dim myLong As Long = 5000L
Dim myInt As Integer = CInt(myLong) ' This is an explicit cast from long to int.
' Be cautious if myLong > 2,147,483,647 as it may cause data loss.
Należy zachować ostrożność podczas rzutowania, ponieważ może to prowadzić do nieoczekiwanych rezultatów, jeśli wartość wykracza poza zakres typu docelowego.
Stosowanie typów liczbowych przy użyciu IronPDF
IronPDF to lekka biblioteka .NET do obsługi plików PDF, zaprojektowana specjalnie z myślą o programistach stron internetowych. Dzięki temu czytanie, pisanie i edycja plików PDF staje się dziecinnie prosta, umożliwia konwersję wszelkiego rodzaju plików do formatu PDF, a ponadto można z niego korzystać w projektach .NET zarówno na komputery stacjonarne, jak i w sieci. Najlepsze jest to, że można wypróbować to rozwiązanie w środowisku programistycznym za darmo.
Przyjrzyjmy się implementacji typów w języku C# przy użyciu IronPDF.
Pozycjonowanie i rozmiarowanie elementów
W tym przykładzie dostosujemy położenie i rozmiar elementów na stronie. W IronPDF współrzędne są definiowane przy użyciu typu zmiennoprzecinkowego.
using IronPdf;
var htmlToPdf = new ChromePdfRenderer();
htmlToPdf.RenderingOptions.MarginTop = 50; // Set top margin in points.
htmlToPdf.RenderingOptions.MarginBottom = 50; // Set bottom margin in points.
var document = htmlToPdf.RenderHtmlAsPdf("<h1>Numeric Types in C# with IronPDF</h1>");
document.SaveAs("C:\\numericTypes.pdf"); // Save the generated PDF to the specified path.
using IronPdf;
var htmlToPdf = new ChromePdfRenderer();
htmlToPdf.RenderingOptions.MarginTop = 50; // Set top margin in points.
htmlToPdf.RenderingOptions.MarginBottom = 50; // Set bottom margin in points.
var document = htmlToPdf.RenderHtmlAsPdf("<h1>Numeric Types in C# with IronPDF</h1>");
document.SaveAs("C:\\numericTypes.pdf"); // Save the generated PDF to the specified path.
Imports IronPdf
Private htmlToPdf = New ChromePdfRenderer()
htmlToPdf.RenderingOptions.MarginTop = 50 ' Set top margin in points.
htmlToPdf.RenderingOptions.MarginBottom = 50 ' Set bottom margin in points.
Dim document = htmlToPdf.RenderHtmlAsPdf("<h1>Numeric Types in C# with IronPDF</h1>")
document.SaveAs("C:\numericTypes.pdf") ' Save the generated PDF to the specified path.
Plik PDF wyjściowy

Wnioski
Od podstawowych obliczeń po dostosowywanie układu generowanego pliku PDF — typy liczbowe są ważnym elementem skutecznego i wydajnego programowania w języku C#. Służą one jako elementy składowe do manipulacji danymi, projektowania algorytmów oraz tworzenia wysokiej jakości dokumentów PDF.
Chcesz wypróbować IronPDF? Możesz zacząć od naszej 30-dniowej wersji próbnej bezpłatnej. Można z niego korzystać całkowicie za darmo do celów programistycznych, więc naprawdę możesz sprawdzić, na czym to polega. A jeśli spodoba Ci się to, co widzisz, IronPDF jest dostępny już od wersji liteLicense. Aby uzyskać jeszcze większe oszczędności, sprawdź pakiet Iron Suite, w którym możesz otrzymać wszystkie dziewięć narzędzi Iron Software w cenie dwóch. Miłego kodowania!

Często Zadawane Pytania
Jak mogę przekonwertować zawartość HTML na plik PDF przy użyciu języka C#?
W języku C# można konwertować zawartość HTML do formatu PDF, korzystając z metody RenderHtmlAsPdf biblioteki IronPDF, która pozwala przekształcać ciągi znaków HTML bezpośrednio w dokumenty PDF. Dodatkowo do konwersji plików HTML można użyć metody RenderHtmlFileAsPdf.
Jakie są kluczowe różnice między typami całkowitoliczbowymi a zmiennoprzecinkowymi w języku C#?
W języku C# typy całkowitoliczbowe są używane dla liczb całkowitych i obejmują typy takie jak byte, int i long. Typy zmiennoprzecinkowe, takie jak float i double, obsługują liczby z miejscami po przecinku, oferując szerszy zakres, ale mniejszą precyzję.
Dlaczego w języku C# miałbym używać typu decimal zamiast double?
Typ dziesiętny zapewnia wyższą precyzję, dzięki czemu idealnie nadaje się do obliczeń finansowych, w których kluczowe znaczenie ma dokładne przedstawienie wartości dziesiętnych. Może on przedstawiać wartości z precyzją 28–29 cyfr, w porównaniu z 15–16 cyframi w przypadku typu double.
Jakie korzyści dla programistów C# wynikają z typów liczb całkowitych o rozmiarze natywnym?
Typy liczb całkowitych o rozmiarze natywnym, takie jak IntPtr i UIntPtr, dostosowują swój rozmiar w zależności od platformy, zapewniając efektywność pamięciową w zadaniach takich jak obsługa adresów pamięci i wskaźników w scenariuszach specyficznych dla danej platformy.
Jaką rolę odgrywają typy liczbowe w generowaniu plików PDF za pomocą .NET?
Typy liczbowe w generowaniu plików PDF w środowisku .NET mają zasadnicze znaczenie dla definiowania układu elementów PDF. Na przykład liczby zmiennoprzecinkowe mogą określać dokładny rozmiar i położenie tekstu oraz obrazów na stronie PDF przy użyciu biblioteki IronPDF.
Czym są konwersje niejawne i jawne w języku C#?
W języku C# konwersje niejawne mają miejsce, gdy typ docelowy może przechowywać wartość źródłową bez utraty danych. Konwersje jawne, czyli rzutowanie, wymagają ręcznej interwencji, często przy użyciu operatora rzutowania, ze względu na potencjalną utratę danych.
Jak mogę ocenić bibliotekę .NET do obsługi plików PDF pod kątem mojego projektu?
Możesz ocenić bibliotekę .NET do obsługi plików PDF, taką jak IronPDF, korzystając z 30-dniowego okresu próbnego. Pozwoli ci to zapoznać się z jej funkcjami podczas tworzenia oprogramowania przed podjęciem decyzji o zakupie licencji.




