C# formatting string with several numbers after the dot [duplicate] - c#

This question already has answers here:
Math.Round vs String.Format
(6 answers)
How do I display a decimal value to 2 decimal places?
(19 answers)
Closed 5 years ago.
I'm recovering the value of a website, however I'm having difficulty formatting the string ...
My Value: $314.623230
Expected result: 314.62
How i can archive this result?
I have tried to convert the string to decimal and use ToSting() with arguments (N0, N1, 0:0##), but it does not return the expected result ...

var usCulture = new CultureInfo("en-US");
decimal d = decimal.Parse("$314.623230", NumberStyles.Currency, usCulture);
string expectedResult = d.ToString("0.##", usCulture); // 314.62

Related

How to remove the decimal point from string c# [duplicate]

This question already has answers here:
How remove decimal part from string?
(3 answers)
Closed 1 year ago.
I want to remove decimal point from string.
I try with this code but not work for me:
string wSpeed = Math.Round(weatherBindingData.WeatherDataCurrent.Wind.Speed) * 3.6 + "km/h";
WindSpeed.Text = wSpeed;
I want to remove the decimal point, but with this code I receive a values with decimal point.
How is the correct way to remove the decimal point?
Use formatting:
string wSpeed = $"{Math.Round(weatherBindingData.WeatherDataCurrent.Wind.Speed) * 3.6:0}km/h";
Or what you more likely want:
string wSpeed = $"{weatherBindingData.WeatherDataCurrent.Wind.Speed * 3.6:0}km/h";

How to convert E+ number from a string to decimal in C#? [duplicate]

This question already has answers here:
How to convert this scientific notation to decimal?
(6 answers)
Closed 8 years ago.
In my application I get a number 2.424242E+08 in my label called lbl_price and when i try to convert it to a decimal i get a FormatEception. How can i fix this?
decimal newVat = Convert.ToDecimal(lbl_price.text);
Try:
decimal newVat = decimal.Parse(lbl_price.text, System.Globalization.NumberStyles.Float);

How to reverse the String.Format("{0:C}"..) [duplicate]

This question already has answers here:
Problem parsing currency text to decimal type
(4 answers)
Closed 8 years ago.
We use following code to convert a decimal to a string,
td_1.InnerText = String.Format("{0:C}", price)
so the result could be any of following cases:
4.83 -> $4.83
0 -> $0.00
-30.24 -> ($30.24)
my question is if there any way I can reverse the string back to a signed decimal? For example:
$4.83 ->4.83
($30.24) -> -30.24
I tried decimal.tryparse, doesn't seem work. Here is my code
decimal number;
if (Decimal.TryParse(price, out number) && number <0)
...
Have you tried adding NumberStyles, like:
decimal.Parse(currencyValue, NumberStyles.Currency);

How to hide fractional part if it is zero? [duplicate]

This question already has answers here:
How do I format a double to a string and only show decimal digits when necessary?
(2 answers)
Closed 9 years ago.
How to hide fractional part of a double or float number if it is all zero. I am converting a floating point number to string and its display Mantissa part even if it is zero. For example:
double number = 123.00;
string strNumber = number.ToString(); // it shows "123.0", what I need is only "123"
double secondNumber = 123.2234;
string strSecondNumber = secondNumber.ToString(); // it shows "123.2234" as needed.
Is there any built-in solution in .NET to get it done?
Thanks
Try using the overload of double.ToString() that takes in a format string, and pass it "R":
double number = 123.00;
string strNumber = number.ToString("R");
double secondNumber = 123.2234;
string strSecondNumber = secondNumber.ToString("R");

How to trim decimal? [duplicate]

This question already has answers here:
Truncate Decimal number not Round Off [duplicate]
(10 answers)
Closed 9 years ago.
I have a decimal number :
decimal a = 0.8537056986486486486486486486;
I want to show it as string with only 8 digit after point :
a equals -> "0.85370569".
How can I do it ?
For example, like this:
a.ToString("0.00000000");
Try using
a.ToString("D8");
This should convert it to the correct format.
Edit:
As said in the comments, D is only used for integral types, thus not for decimals and such.
Use
static void Main(string[] args)
{
decimal d = (decimal)0.8537056986486486486486486486;
Console.WriteLine(d.ToString("N8"));
Console.ReadLine();
}
instead.
This will format it to 0.85370570
To perform this numerically you could use:
decimal a = (decimal) 0.8537056986486486486486486486;
String test = (Math.Truncate(100000000 * a) / 100000000).ToString();
decimal a = 0.8537056986486486486486486486;
var v= a.ToString("#.########");

Categories