.NET Tips and Tricks

Blog archive

Doing Calculations Right with the Math Class

The .NET Framework gives you the Math class, which has a ton of methods and properties that you can use.

The Abs function will convert negative numbers to positive (and leave positive numbers alone), while the Sign method will tell you if a number is positive, negative or zero.

The Truncate, Ceiling, Floor and Round methods will give you four different ways to get the integer portion of a decimal value, depending on what you want.

The DivRem method will return both the result of a division and its remainder (and IEEERemainder has a special result when you divide a smaller number by a larger number).

The Math object's PI property gives you a value of PI to more than 12 decimals -- more accuracy than you'll probably need.

The Sin, Cos and related methods will perform all of those trigonometry functions that I never really got in high school.

There's more functionality here than I can discuss, but I have to mention the BigMul method (which sounds like the name of a Scottish folk hero to me). When you multiply two large integer numbers you might get a result bigger than an integer … which will cause an overflow exception. BigMul, on the other hand, will multiply two 32-bit integers and return a Long, avoiding overflow.

Maybe it is a folk hero.

Posted by Peter Vogel on 09/15/2016 at 8:19 PM


Featured

  • No More .NET Framework APIs Will Be Ported to .NET Core, Microsoft Says

    The old, proprietary, Windows-only .NET Framework has given all it can give to the new cross-platform, open-source platform of the future, .NET Core.

  • Bright Tunnel

    Visual Studio 16.4 Preview 2 Boosted by Extension Tech

    Microsoft today shipped Visual Studio 2019 v16.4 Preview 2, boosted with new features that come from formerly separate extensions.

  • Nebula

    .NET Core 3.1 Preview 1 Focuses on Blazor, Desktop

    The first preview of .NET Core 3.1 focuses on two of the big features highlighting the Sept. 23 release of .NET Core 3.0: Blazor (for C# Web development instead of JavaScript) and desktop development (Windows Forms and Windows Presentation Foundation).

.NET Insight

Sign up for our newsletter.

Terms and Privacy Policy consent

I agree to this site's Privacy Policy.

Upcoming Events