Round off decimal value in Nearest 10 or Zero [duplicate] - c#

This question already has answers here:
C# - Math.Round
(5 answers)
Closed 4 years ago.
Following values i would like to convert to round off figure. likes:
60.72 --> 60.70
170.76 --> 170.80
Currently, I'm converted to round off value using below method:
getFee.ServiceRequestFee.ToString("N")
I'm not sure which Match.Round method suitable to my requirement.
Edit:
protected string Getroundoffdecimalvalue(string servicerequestsfee_val)
{
servicerequestsfee_val = Math.Round(Convert.ToDecimal(servicerequestsfee_val), 2).ToString();
return servicerequestsfee_val;
}
I used this function even after i return 60.72 only and my expectation should 60.70.

Math.Round(yourNumber, 1)
The second parameter is number of decimal places to round to. In your case you want 1 decimal place as an end result.
**
You need to overloadMath.round that takes the decimals parameter of
your choice and convenience.
**

Use Math.round and if needed convert the same to string.
Math.Round(var_name,2)

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");}

How to get first digit after decimal point value without ToString() conversions? [duplicate]

This question already has answers here:
Truncate Two decimal places without rounding
(24 answers)
Closed 4 years ago.
For example if I divide 1050 / 256 I get 4.1015625. I need the value of first digit after decimal point (1 in this case). I don't want to involve ToString() conversions and then parsing it into digit again.
This picture for itsme86:
This picture for Jeroen Mostert:
What about:
decimal result = 4.1015625m;
result = result - (int)result;
result = Decimal.Round(result, 1, MidpointRounding.AwayFromZero);
This can be combined into one line if needed but is more readable this way.
Math.Floor((4.1015625 - Math.Floor(4.1015625)) * 10)
I would do it this way:
First i would subtract the the number before the decimal seperator of the given number.
Then I would multiply it by 10.
Example: 4.2 - 4 = .2 * 10 = 2
NOTE: You cannot use floating point numbers for accurate mathematical operations, as some values cannot be represented properly. So always cast to/use decimal and not float/double if you need exact values like this.

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/

format decimal number using ToString [duplicate]

This question already has answers here:
Using String Format to show decimal up to 2 places or simple integer
(18 answers)
Closed 9 years ago.
If I got decimal number like 14.50 and I want to be represented like decimal 10.2
0000000014.50
how can I do this?
Thank you
Use custom numeric format string:
var value = 14.50m;
string valueString = value.ToString("0000000000.00");
0 is a placeholder: Replaces the zero with the corresponding digit if one is present; otherwise, zero appears in the result string.
If you don't have an issue with the data type being converted to string then you could use Padding in c#.
Refer the link below :
http://msdn.microsoft.com/en-us/library/66f6d830(v=vs.100).aspx

Trimming a float [duplicate]

This question already has answers here:
Closed 10 years ago.
Possible Duplicate:
Leave only two decimal places after the dot
Formatting a float to 2 decimal places
If I have a float that consists of something like 153.2154879, is there any way to convert it to string but only show 4 decimal places? I know I can format it using "000.000", but the front number doesnt always have to be 3 digits. So is there a way to show all the front numbers (153), but only the first 4 characters after the point in a string?
Something like this should do:
your_number.ToString("0.####");
This will show a max of 4 decimal places.
I usually use a format string like "#0.0000".
You can use the C# function Math.Round function.
float a= 153.213456;
Math.Round(a,3);
this would round up the number to 153.213
then get convert it to string.

Categories