How to round a decimal number? [duplicate] - c#

This question already has answers here:
Rounding a variable to two decimal places C# [duplicate]
(8 answers)
How do you round a number to two decimal places in C#?
(15 answers)
Closed 5 years ago.
I have a decimal number decimal n = 0.111111111m; and I want to change it to 0.112. How could I do this ?

You can use:
Math.Round(n, 3);
To always round up, you can use:
Math.Ceiling(n * 1000) / 1000;

According to this link
https://msdn.microsoft.com/en-us/library/6be1edhb(v=vs.110).aspx
You'll need to do something like Decimal.Round(n, 3);
However your initial approximation is not accurate

Related

Is there a way to display 2 decimal places instead of automatically rounding? [duplicate]

This question already has answers here:
Why does integer division in C# return an integer and not a float?
(8 answers)
Closed 3 years ago.
I'm making a simple calculator in c# and and everything works well until I try dividing numbers that should give decimal places. How to display 2 decimal places in these cases?
I've tried putting #.## after .ToString.
{label1.Text = (divide / Convert.ToInt64(label1.Text)).ToString("#.##");}
I expect the output of 5/4 to be 1.25, but it is 1.
convert the number to float instead of int,
{label1.Text = ((float)divide / float.Parse(label1.Text)).ToString("n2");}

why does double return this value? C# [duplicate]

This question already has answers here:
Why is floating point arithmetic in C# imprecise?
(3 answers)
decimal vs double! - Which one should I use and when? [duplicate]
(7 answers)
Closed 6 years ago.
double sth = 250 - 249.99;
Console.WriteLine(sth);
Why does this return sth like 0.009994507, instead of 0.01?
Floating point numbers (in this case doubles) cannot represent decimal values exactly. For more info, see this page here
If you need a more accurate representation, use decimal instead.
because when you print the double you print the all double value not just the first x after point digits.
you can use String.Format to print only the first 2 numbers.
double sth = 250.00d - 249.99d;
string sthString = String.Format("{0:0.00}", sth);
Console.WriteLine(sthString);
There are a lot of decimals that have infinite binary representation. What you're experiencing is exactly this case.
For more on this topic see: http://www.exploringbinary.com/why-0-point-1-does-not-exist-in-floating-point/

taking just two digits of a Number of type double without rounding it [duplicate]

This question already has answers here:
Truncate Two decimal places without rounding
(24 answers)
Closed 8 years ago.
I have this Number
double Nb=4.9584763251
how can I make get only two digits after the comma without rounding the number :
Nb=`4.95` and not `4.96`
using the Math.Round(Nb,2) will return 4.96
is there any way to fix this ?
You may use Math.Truncate(Nb * 100) / 100m
double x = ((int)(Nb*100))/100.0

Decimal places float [duplicate]

This question already has answers here:
Limiting double to 3 decimal places
(8 answers)
Closed 8 years ago.
I'm have a hard time trying to format a float with 4 decimal places, for example, I have the number 2.999995, I wanna get only 4 decimal places from this number, 2.9999, when I use .toString("#.####") or .toString("0.0000") it return 2.3000, I don't wanna this, I wanna 2.9999, someone can help me?
Thanks
Try This:
float floatVal = 2.999995f;
string str=floatVal.ToString();
if(str.Split('.')[1].Length > 3)
floatVal=Convert.ToSingle(str.Substring(0,str.IndexOf('.')+5));
Console.WriteLine(floatVal);
Output:
2.9999
Demo here

c# - Show a decimal to 6 decimal places [duplicate]

This question already has answers here:
Closed 11 years ago.
Possible Duplicate:
Double.ToString with N Number of Decimal Places
I want to show a decimal to 6 decimal places, even if it contains 6 x 0's
For example:
3.000000
5.100000
3.456789
and so forth, is this possible?
Use N6 as the numeric format string.
myDecimal.ToString("N6");
or
string.Format("{0:N6}", myDecimal);
Decimal d = 20;
d.ToString("0.000000");

Categories