
C# Math (jak to działa dla programistów)
C# jest jednym z popularnych języków programowania do budowania dynamicznych i skalowalnych aplikacji. Jedną z zalet tego języka jest jego obszerna biblioteka wbudowanych funkcji, w szczególności funkcji matematycznych. W tym samouczku szczegółowo omówimy różne funkcje matematyczne dostępne w C#, pomagając Ci zapoznać się z klasą Math i łatwo wykonywać powszechne równania matematyczne.
Pierwsze kroki
W C# klasa Math jest klasą statyczną dostępną w przestrzeni nazw System. Ta klasa zawiera mnóstwo metod zaprojektowanych, aby pomóc deweloperom w przeprowadzaniu operacji matematycznych bez potrzeby pisania ich od zera.
Jak uzyskać dostęp do klasy Math
Aby uzyskać dostęp do klasy Math, należy włączyć przestrzeń nazw System w swojej publicznej klasie Program. Oto jak to zrobić:
using System;
public class Program
{
// Entry point of the program
public static void Main()
{
// Your code goes here
}
}Imports System
Public Class Program
' Entry point of the program
Public Shared Sub Main()
' Your code goes here
End Sub
End ClassW metodzie public static void Main można wywołać dowolną funkcję z klasy Math, odwołując się do Math.<functionName> i używając parametru wyniku, który również może być liczbą zmiennoprzecinkową.
Podstawowe funkcje matematyczne
Spójrzmy na niektóre podstawowe funkcje matematyczne, które oferuje C#:
Wartość bezwzględna: Wartość bezwzględna wskazanej liczby to jej wartość bez znaku. Funkcja Math.Abs() przyjmuje liczbę i zwraca jej wartość bezwzględną.
double val = -10.5;
double absValue = Math.Abs(val); // Function returns absolute value
Console.WriteLine(absValue); // Output: 10.5Dim val As Double = -10.5
Dim absValue As Double = Math.Abs(val) ' Function returns absolute value
Console.WriteLine(absValue) ' Output: 10.5Pierwiastek kwadratowy: Aby znaleźć pierwiastek kwadratowy wskazanej liczby, użyj funkcji Math.Sqrt(). Ta funkcja oblicza pierwiastek kwadratowy i zwraca wartość zmiennoprzecinkową, jak pokazano w poniższym przykładzie:
double value = 16;
double sqrtValue = Math.Sqrt(value);
Console.WriteLine(sqrtValue); // Output: 4Dim value As Double = 16
Dim sqrtValue As Double = Math.Sqrt(value)
Console.WriteLine(sqrtValue) ' Output: 4Zaokrąglanie liczb: C# oferuje kilka funkcji do zaokrąglania liczb do najbliższej liczby całkowitej lub wskazanej liczby miejsc dziesiętnych. Funkcja Math.Round() zaokrągla wartość zmiennoprzecinkową do najbliższej liczby całkowitej:
double value = 10.75;
double roundedValue = Math.Round(value); // Rounds to the nearest whole number
Console.WriteLine(roundedValue); // Output: 11Dim value As Double = 10.75
Dim roundedValue As Double = Math.Round(value) ' Rounds to the nearest whole number
Console.WriteLine(roundedValue) ' Output: 11Funkcje trygonometryczne i hiperboliczne
Oprócz podstawowych operacji arytmetycznych klasa Math w C# oferuje również szereg funkcji trygonometrycznych i hiperbolicznych.
Wartość funkcji sinus: Aby znaleźć wartość funkcji sinus określonego kąta (w radianach), użyj Math.Sin().
double angle = Math.PI / 2; // 90 degrees in radians
double sineValue = Math.Sin(angle);
Console.WriteLine(sineValue); // Output: 1Dim angle As Double = Math.PI / 2 ' 90 degrees in radians
Dim sineValue As Double = Math.Sin(angle)
Console.WriteLine(sineValue) ' Output: 1Funkcje hiperboliczne: Są one podobne do funkcji trygonometrycznych, ale są używane do równań hiperbolicznych. Kilka przykładów to Math.Sinh() (sinus hiperboliczny), Math.Cosh() (cosinus hiperboliczny) i Math.Tanh() (tangens hiperboliczny).
double value = 1;
double hyperbolicSine = Math.Sinh(value);
double hyperbolicCosine = Math.Cosh(value);
double hyperbolicTangent = Math.Tanh(value);Dim value As Double = 1
Dim hyperbolicSine As Double = Math.Sinh(value)
Dim hyperbolicCosine As Double = Math.Cosh(value)
Dim hyperbolicTangent As Double = Math.Tanh(value)Zaawansowane funkcje matematyczne
Dla tych, którzy szukają bardziej zaawansowanych operacji:
Potęga: Funkcja Math.Pow() przyjmuje dwie liczby zmiennoprzecinkowe: podstawę i wykładnik. Zwraca ona liczbę podstawową podniesioną do określonej potęgi.
double baseNum = 2;
double exponent = 3;
double result = Math.Pow(baseNum, exponent);
Console.WriteLine(result); // Output: 8Dim baseNum As Double = 2
Dim exponent As Double = 3
Dim result As Double = Math.Pow(baseNum, exponent)
Console.WriteLine(result) ' Output: 8Logarytm: C# oferuje funkcję Math.Log(), która oblicza logarytm naturalny (podstawy e) wskazanej liczby. Dodatkowo można określić podstawę przy użyciu Math.Log(number, specified base).
double value = 10;
double naturalLog = Math.Log(value); // Natural logarithm base e
double logBase10 = Math.Log(value, 10); // Base 10 logarithmDim value As Double = 10
Dim naturalLog As Double = Math.Log(value) ' Natural logarithm base e
Dim logBase10 As Double = Math.Log(value, 10) ' Base 10 logarithmComplex Numbers in C#
Chociaż ten samouczek dotyczy głównie funkcji podstawowych i średnio zaawansowanych, warto zauważyć, że C# oferuje wsparcie dla liczb zespolonych.
Tworzenie liczby zespolonej: Użyj klasy Complex z przestrzeni nazw System.Numerics. Nie jest ona częścią klasy Math, ale jest niezbędna do operacji matematycznych z udziałem liczb zespolonych.
using System.Numerics;
Complex complexNumber = new Complex(2, 3); // Represents 2 + 3iImports System.Numerics
Private complexNumber As New Complex(2, 3) ' Represents 2 + 3iFunkcje konwersji w klasie Math
Często deweloperzy muszą konwertować pomiędzy różnymi typami wartości liczbowych:
Konwersja na liczbę całkowitą: Jeśli masz liczbę zmiennoprzecinkową i chcesz ją przekonwertować na liczbę całkowitą, usuwając jej wartość dziesiętną, użyj metody Convert.ToInt32().
double value = 10.99;
int intValue = Convert.ToInt32(value);
Console.WriteLine(intValue); // Output: 11 (rounds 10.99 to the nearest integer)Dim value As Double = 10.99
Dim intValue As Integer = Convert.ToInt32(value)
Console.WriteLine(intValue) ' Output: 11 (rounds 10.99 to the nearest integer)Dziesiętny na binarny: C# nie ma bezpośredniej metody w klasie Math do tego celu. Możesz jednak użyć funkcji Convert.ToString(value, 2) z przestrzeni nazw System.
int value = 42;
string binary = Convert.ToString(value, 2); // Converts 42 to binary
Console.WriteLine(binary); // Output: 101010Dim value As Integer = 42
Dim binary As String = Convert.ToString(value, 2) ' Converts 42 to binary
Console.WriteLine(binary) ' Output: 101010Błędy i obsługa wyjątków w funkcjach matematycznych
Podczas korzystania z funkcji matematycznych czasami można napotkać błędy, takie jak dzielenie przez zero. Ważne jest, aby radzić sobie z tymi potencjalnymi pułapkami:
Dzielenie przez zero: Użyj instrukcji warunkowej, aby sprawdzić dzielnik przed wykonaniem dzielenia.
double numerator = 10;
double denominator = 0;
if (denominator != 0)
{
double result = numerator / denominator;
Console.WriteLine(result);
}
else
{
Console.WriteLine("Cannot divide by zero!");
}Dim numerator As Double = 10
Dim denominator As Double = 0
If denominator <> 0 Then
Dim result As Double = numerator / denominator
Console.WriteLine(result)
Else
Console.WriteLine("Cannot divide by zero!")
End IfObsługa przepełnienia: Kiedy operacja matematyczna prowadzi do wyniku zbyt dużego dla jego typu danych, następuje przepełnienie. Użyj bloków checked, aby wychwycić ten wyjątek.
try
{
checked
{
int result = checked(int.MaxValue + 1); // This will cause an overflow
}
}
catch (OverflowException ex)
{
Console.WriteLine("Overflow occurred: " + ex.Message);
}Try
'INSTANT VB TODO TASK: There is no equivalent to a 'checked' block in VB:
' checked
'INSTANT VB TODO TASK: There is no VB equivalent to 'checked' in this context:
'ORIGINAL LINE: int result = checked(int.MaxValue + 1);
Dim result As Integer = Integer.MaxValue + 1 ' This will cause an overflow
'INSTANT VB TODO TASK: End of the original C# 'checked' block.
Catch ex As OverflowException
Console.WriteLine("Overflow occurred: " & ex.Message)
End TryWprowadzamy Iron Suite: Potężna Suite dla programistów C#
Jak zagłębiamy się w możliwości C#, warto zauważyć, że ekosystem wokół tego języka programowania bardzo się rozwijał. Jednym z takich wkładów jest Iron Suite, wszechstronny zestaw narzędzi dostosowany do programistów C#. Oferuje on zestaw produktów, które mogą wzmocnić twoje aplikacje, zapewniając, że są one solidne i bogate w funkcje.
IronPDF

Czy kiedykolwiek czułeś potrzebę pracy z plikami PDF w swoich aplikacjach C#? IronPDF for PDF Integration in C# Applications jest twoim głównym rozwiązaniem. Umożliwia on niezwykle łatwe tworzenie, edytowanie, a nawet wyodrębnianie zawartości z plików PDF. Kiedy połączysz to z funkcjami matematycznymi C#, możesz generować raporty, wykresy i inne wizualizacje matematyczne oraz bezproblemowo osadzać je w swoich dokumentach PDF.
Charakterystyczną cechą IronPDF jest jego HTML to PDF Conversion Feature, zachowującą wszystkie układy i style. Generuje pliki PDF na podstawie treści internetowych, odpowiednie do raportów, faktur i dokumentacji. Pliki HTML, adresy URL i ciągi znaków HTML można bez trudu konwertować do formatu PDF.
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
// 1. Convert HTML String to PDF
var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");
// 2. Convert HTML File to PDF
var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");
// 3. Convert URL to PDF
var url = "http://ironpdf.com"; // Specify the URL
var pdfFromUrl = renderer.RenderUrlAsPdf(url);
pdfFromUrl.SaveAs("URLToPDF.pdf");
}
}Imports IronPdf
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim renderer = New ChromePdfRenderer()
' 1. Convert HTML String to PDF
Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"
Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent)
pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf")
' 2. Convert HTML File to PDF
Dim htmlFilePath = "path_to_your_html_file.html" ' Specify the path to your HTML file
Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath)
pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf")
' 3. Convert URL to PDF
Dim url = "http://ironpdf.com" ' Specify the URL
Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
pdfFromUrl.SaveAs("URLToPDF.pdf")
End Sub
End ClassIronXL

Manipulacja danymi jest istotnym aspektem programowania, a jeśli chodzi o arkusze kalkulacyjne, IronXL for Excel Interop in C# pokrywa potrzeby. Niezależnie od tego, czy tworzysz, odczytujesz, czy edytujesz pliki Excel, IronXL integruje się bezproblemowo z C#. Dzięki mocy funkcji matematycznych C# możesz wykonywać obliczenia na swoich danych Excel bezpośrednio w ramach aplikacji.
IronOCR

Optical Character Recognition (OCR) nie jest już futurystycznym konceptem, ale rzeczywistością dzięki IronOCR for Extracting Text from Images and PDFs. Jeśli masz aplikację zajmującą się obrazami lub skanowanymi dokumentami i chcesz wyodrębnić tekst, zwłaszcza dane liczbowe lub równania matematyczne, IronOCR w połączeniu z C# może bezproblemowo rozpoznać i przetłumaczyć je na dane użyteczne.
IronBarcode

W dzisiejszym świecie kody kreskowe odgrywają integralną rolę w identyfikacji produktów. Z IronBarcode for Generating and Reading Barcodes in C#, deweloperzy C# mogą łatwo generować, odczytywać i pracować z kodami kreskowymi. Może to być szczególnie użyteczne, jeśli rozwijasz systemy magazynowe lub sprzedażowe, gdzie obliczenia matematyczne i kody kreskowe się przeplatają.
Wnioski

Środowisko C# jest ogromne i potężne, a dzięki narzędziom takim jak Iron Suite możesz podnieść swoje aplikacje na nowe wyżyny. Należy zauważyć, że każdy produkt wchodzący w skład Iron Suite, czy to IronPDF, IronXL, IronOCR, czy IronBarcode, rozpoczyna się od licencji zaczynającej się od $999. Ponadto, dla tych, którzy chcą spróbować przed inwestycją, każdy produkt oferuje 30-dniowy okres próbny dla szerokich funkcji Iron Suite za cenę zaledwie dwóch produktów. Taka okazja nie tylko oferuje oszczędności kosztów, ale także zapewnia wszechstronny zestaw narzędzi do spełnienia różnych potrzeb rozwojowych.

Jacob Mellor jest Chief Technology Officer w Iron Software i wizjonerskim inżynierem, pionierem technologii C# PDF. Jako pierwotny deweloper głównej bazy kodowej Iron Software, kształtuje architekturę produktów firmy od jej początku, przekształcając ją wspólnie z CEO Cameron Rimington w firmę liczącą ponad 50 osób, obsługującą NASA, Teslę i światowe agencje rządowe.
Powiązane artykuły


