C#: Rounding up to 2 maximum decimal points for Double variables [duplicate] - c#

This question already has answers here:
Formatting a double to two decimal places
(8 answers)
Rounding double values in C#
(4 answers)
Rounding to 2 decimal points [duplicate]
(3 answers)
Closed 8 years ago.
Is there any chance to format a double value after an operation to come up with only 2 decimal values?
Because i am making a weather report and i'm getting the average of weather data per 5 minutes and i want to make it formal to have only 2 decimal places.
Which instead of having 10240.8999 i could have 10240.90.
Any thoughts or suggestion?

In .NET, the way to do this is:
var rounded = Math.Round(valueToRound, 2);
for decimal variables:
var rounded = Decimal.Round(valueToRound, 2);

Round with 2 decimals and convert to string to force 2 decimals
string rounded = String.Format("{0:f2}", Math.Round(10240.8999, 2));
Gives 10240.90

Related

C# BigInteger with Decimal outcome [duplicate]

This question already has answers here:
How can i get precision up-to 128 decimal places in C#?
(2 answers)
BigInteger string representation with decimal places
(4 answers)
BigInteger division in C#
(7 answers)
Closed 1 year ago.
I'm trying to do calculations with huge numbers. for example:
22352794900029489130063309832192 / 1000000000000000000000000000000
I want the outcome to be 22.35279490 (preferred decimal), but if I use BigInteger the result gets rounded to 22.
Does .NET have something similar to an uint128?
What´s the best practise to do so?
To preserve precision, consider converting the BigInteger values to doubles first, then dividing after.
BigInteger a = BigInteger.Parse("22352794900029489130063309832192");
BigInteger b = BigInteger.Parse("1000000000000000000000000000000");
double da = (double)a;
double db = (double)b;
double result = da / db;

Console.Writeline(integer); prints number without decimals even though there should be decimals [duplicate]

This question already has answers here:
Possible Loss of Fraction
(5 answers)
Closed 4 years ago.
I'm trying to print out this integer variable which in the case of my test numbers should be 5,2333 but only 5 gets printed.
int finalTimeInt = ((N * 60 + n) / 2) / 60;
Console.Writeline(finalTimeInt);
As stated already I'm expecting an output of 5,2333 but am only getting a 5.
Integers can't hold decimals. If you want a variable to store decimals, you should be using a floating-point type, like float, or double if you want more accuracy.

Math Round in VS C# [duplicate]

This question already has answers here:
How do I display a decimal value to 2 decimal places?
(19 answers)
Closed 5 years ago.
so I have the following problem I'm trying to output 2 numbers after the decimal comma but it doesn't output it with 2 numbers only when I have zero or more than one zero at the end of the number.
Console.WriteLine(Math.Round(s * 0.07, 2));
here's how I did it.
You might want:
Console.WriteLine($"{s:N2}");

How to convert string to decimal with specific number of digits [duplicate]

This question already has answers here:
Formatting a double to two decimal places
(8 answers)
Closed 6 years ago.
I have a small question regarding Math.Round function.
I need the string "12.123456" to be rounded at 4 decimals. I used:
Math.Round(Convert.ToDouble(pData), 4).ToString()
where pData is defined as string, but the values are decimal with 7 decimals.
My problem is that I expected to get every time the exact 4 decimals, but for some values it gives me only 2 (eg. 12.12 instead of 12.1200).
How can I change in order to always get the needed 4 decimals?
Regards,
You should use format strings instead:
pDate.ToString("0.0000")
or
pDate.ToString("n4")

Format to two decimal places [duplicate]

This question already has answers here:
Closed 10 years ago.
Possible Duplicate:
c# - How do I round a decimal value to 2 decimal places (for output on a page)
I have a number
long n = 32432432423;
I want to divide this by 1450 and print on a console with 2 decimal places (rounded)
How can I do it?
COnsole.WriteLine(????);
Console.WriteLine("{0:N2}", ((double)n) / 1450);
Console.WriteLine("{0:0.00}", 32432432423 / 1450.0);
make use of Math.Round
Console.WriteLine( Math.Round(Convert.ToDecimal(32432432423 / 1450.0), 2));
Result: 22367194.77

Categories

Resources