Round double off with 2 digits after comma - C# [duplicate] - c#

This question already has answers here:
How do I round down a decimal to two decimal places in .NET?
(5 answers)
Closed 5 months ago.
I have the number 12.1799999 and it should become 12.17
How does it work in c#?

var n = 12.1799999M;
n = Math.Floor(n * 100) / 100;

If you intent to round down, then use Math.Floor(number, amountOfDecimals)
amountOfDecimals should be 2 in your case

Related

C#: How to round a float to a defined amount of relevant digits? [duplicate]

This question already has answers here:
How do you round a number to two decimal places in C#?
(15 answers)
How can I round a Decimal value upto a precision so that the total number of digits doesnot cross 15?
(2 answers)
Closed 8 months ago.
How can I limit a float to a defined amount of digits? Let's say I want a precision of 4, then it should be:
14.49193 -> 14.49
1.449193 -> 1.449
0.449193 -> 0.4492
0.000449193 -> 0.0004492
I resolved it with this method, there may be a smoother solution.
public static float LimitDigits(float val,int digits) {
if (val == 0) return 0;
return (float)((val<1.0)?Math.Round(val,digits+(int)Math.Floor(-(Math.Log10(val)))):Math.Round(val, Math.Max(0,digits-(int)Math.Floor((Math.Log10(val)+1)))));
}

Double multiplication with brackets problem [duplicate]

This question already has answers here:
1/252 = 0 in c#?
(3 answers)
Closed last year.
double celsius_0 = (100.5 - 32) * (5 / 9);
double celsius_1 = (100.5- 32) * 5 / 9;
Console.WriteLine(celsius_0);
Console.WriteLine(celsius_1);
output:
0
38,0555555555556
Why do they return differnt values?
I dont understand whats happening
It's because here celsius_0 = (100.5 - 32) * (5 / 9)
you count value in the first bracket then in the second one and then you multiply them.
While in the second line (100.5- 32) * 5 / 9 you count value in bracket then multiply it by 5 and at the end divide it by 9
To sum up in mathematics first you do things in brackets and then multiply/divide and finally add/substract

is this normal in .NET 6 [duplicate]

This question already has answers here:
Why does integer division in C# return an integer and not a float?
(8 answers)
How can I divide two integers to get a double?
(9 answers)
Closed last year.
This post was edited and submitted for review last year and failed to reopen the post:
Original close reason(s) were not resolved
I feel it's a bug, is it?
decimal s = 30 / 9;
double w = 20 / 9;
Console.WriteLine(s);
Console.WriteLine(w);
and the result is
Is this normal, yes. Is this a bug, no.
You're doing integer math on 30 / 9 which is 3 and then assigning to a decimal which then does the conversion. Same with the second line.
Try this instead:
decimal s = 30m / 9m;
double w = 20.0 / 9.0;
Console.WriteLine(s);
Console.WriteLine(w);
That gives:
3.3333333333333333333333333333
2.2222222222222223
You need to declare your constants in your expression with the correct type. Suffix an m for decimal. And either provide a decimal place or suffix with a d for double.

Calculate Power of Double with Double exponent in C# [duplicate]

This question already has answers here:
How can I divide two integers to get a double?
(9 answers)
Closed 3 years ago.
I need to calculate x^y where both x and y are Doubles.
I tried using Math.Pow:
Double result = Math.Pow(24.69, 2/3);
The value of result is 1 where it should be 8.4790 ...
Any idea why?
For the exponent you are passing in 2 ints which is do integer division. So it is doing:
Math.Pow(24.69, 0)
To fix this use doubles like this:
Double result = Math.Pow(24.69, 2.0/3.0);

C# - Having trouble dividing by a 0.x number [duplicate]

This question already has answers here:
Why does integer division in C# return an integer and not a float?
(8 answers)
Closed 8 years ago.
My C# program requires two numerical outputs.
A main price will be divided by 20% and 10%.
For example:
Main price = 200
Discounted price: 20% of 200 = 40. Therefore total price is now 160.
I am having issues converting decimals, int's, etc. Here is what I have tried.
int discountNumber = 20 / 100;
decimal DiscountedPrice = Convert.ToInt32(TotalPrice)
/ Convert.ToInt32(discountNumber);
txtTotalPrice.Text = DiscountedPrice.ToString();
The problem in the
int discountNumber = 20 / 100;
it's always zero
change the int to a double. 20/100 will give you a decimal figure not an int

Categories

Resources