pondělí 15. února 2010

.NET třídy – System.Math

Vítejte u nové série. Rozhodl jsem se udělat malého “průvodce” po užitečných .NET třídách. Jako administrátor jsem zjistil, že na MSDN je hromada užitečných věcí. Vím, že pro administrátory je MSDN “obuda, která žere malý děti”, ale nevěřte všemu, co slyšíte :) Je to velmi užitečný zdroj. V této nové sérii bych vám chtěl ukázat třídy, které považuji za užitečné a které jsem sám několikrát s úspěchem použil.

Dnes začnu se System.Math, která je základem, bez kterého se občas neobejdete a i PowerShell team spoléhá na to, že tuto třídu použijete, protože v některých případech uvádí, že neimplementovali nějakou funkci prostě proto, že existuje v System.Math.

Předpokládám, že máte určité znalosti práce s .NET třídami, pokud ne (a nechce se vám je hledat) nechce mi komentář (to by bylo, abych vás nedonutil se rozepsat :)

Sytem.Math je třída, pomocí které můžete používat některé pokročilejší matematické operace. Obsahuje následující metody:

PS C:\> [Math] | gm -Static -MemberType method | fw -c 5
Abs Acos Asin Atan Atan2
BigMul Ceiling Cos Cosh DivRem
Equals Exp Floor IEEERemainder Log
Log10 Max Min Pow ReferenceEquals
Round Sign Sin Sinh Sqrt
Tan Tanh Truncate


Jak vidíte, velkou část zaujímají goniometrické funkce (jak jsem rád, že jsem je od vysoké školy nepoužil a neviděl :). Třída obsahuje také dvě vlastnosti a to pro hodnoty čísel E a PI.


PS C:\> [Math]::E
2.71828182845905
PS C:\> [Math]::PI
3.14159265358979


Při “normální” práci asi nejvíce využijete následující metody:

  • Max(), Min() – vrátí větší/menší ze dvou zadaných čísel.
  • Round() – zaokrouhlí zadané číslo na celé číslo nebo na daný počet míst.
  • Sign() – vrátí hodnotu ukazující znaménko.

Použití předchozích metod je např. následující:


PS C:\> [Math]::Max(1,123)
123
PS C:\> -2..2 |% {[Math]::Sign($_)}
-1
-1
0
1
1


Berte prosím tento článek jako “nutné zlo” do plánované série a užitečných .NET třídách. System.Math opravdu není úplně nejzajímavější.

Budu rád, pokud mi dáte vědět, které třídy rádi používáte nebo o kterých byste se rádi něco dozvěděli. Příště si ukážeme něco zajímavějšího.

2 komentáře:

stej řekl(a)...

Mně se ještě sem tam dost hodí tyto metody:

[math]::Floor(3.3)
[math]::Ceiling(3.3)

Je to zaokrouhlení dolů a nahoru. Jinak nejčastejší třídou je asi Net.Webclient ;)

makovec řekl(a)...

Díky za koment.

Na Net.WebClient se chystám, ale ze začátku tu mám (namátkou) - Diagnostics.Process nebo Enum. No, uvidíme.