Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Float to String format specifier

I have some float values I want to convert to a string, I want to keep the formatting the same when converting, i.e. 999.0000(float) -> 999.0000(String). My problem is when the values contain an arbitrary number of zeroes after the decimal point, as in the previous example, they are stripped away when converting to a string, so the result I actually end up with is 999.

I looked at the format specifiers for the toString() method on MSDN, the RoundTrip ('R') specifier looks like it will produce what I want, but it is only supported for Single, Double and BigInt variables. Is there a format specifier like this for float variables?? Or would it be easier to just convert the values to doubles?

UPDATE: Just for clarity, the reason why I want to keep the trailing zeroes is because I'm doing a comparison of decimal places, i.e. I'm comparing the number of digits after the decimal place between two values. So for example, 1.00 and 1.00000 have a different number of digits after the decimal point. I know it's a strange request, it's for work and the requirement is coming from on high.

UPDATE 2-3-11:

I was thinking about this too hard, I'm reading the numbers from a txt file and then parsing them as floats, I'm going to modify the program to check whether the string values are decimals or whole numbers. Sorry for wasting your time, although this was very insightful.

like image 285
kingrichard2005 Avatar asked Feb 01 '11 18:02

kingrichard2005


People also ask

Can you convert a float to a string?

To convert float to string, use the toString() method. It represents a value in a string.

What is .2f in Python?

2f means to round up to two decimal places. You can play around with the code to see what happens as you change the number in the formatter.

What is %p format string?

%p expects the argument to be of type (void *) and prints out the address. Whereas %x converts an unsigned int to unsigned hexadecimal and prints out the result.


1 Answers

Use ToString() with this format:

12345.678901.ToString("0.0000"); // outputs 12345.6789 12345.0.ToString("0.0000"); // outputs 12345.0000 

Put as much zero as necessary at the end of the format.

like image 197
Aliostad Avatar answered Oct 14 '22 05:10

Aliostad