Format Float to n decimal places
You may also pass the float value, and use:
String.format("%.2f", floatValue);
Documentation
How to print float to n decimal places including trailing 0s?
For Python versions in 2.6+ and 3.x
You can use the str.format
method. Examples:
>>> print('{0:.16f}'.format(1.6))
1.6000000000000001
>>> print('{0:.15f}'.format(1.6))
1.600000000000000
Note the 1
at the end of the first example is rounding error; it happens because exact representation of the decimal number 1.6 requires an infinite number binary digits. Since floating-point numbers have a finite number of bits, the number is rounded to a nearby, but not equal, value.
For Python versions prior to 2.6 (at least back to 2.0)
You can use the "modulo-formatting" syntax (this works for Python 2.6 and 2.7 too):
>>> print '%.16f' % 1.6
1.6000000000000001
>>> print '%.15f' % 1.6
1.600000000000000
How to print a float with 2 decimal places in Java?
You can use the printf
method, like so:
System.out.printf("%.2f", val);
In short, the %.2f
syntax tells Java to return your variable (val
) with 2 decimal places (.2
) in decimal representation of a floating-point number (f
) from the start of the format specifier (%
).
There are other conversion characters you can use besides f
:
d
: decimal integero
: octal integere
: floating-point in scientific notation
Is there a way to automatically printf a float to the number of decimal places it has?
Is there a way to automatically printf a float to the number of decimal places it has?
Use "%g"
. "%g"
lops off trailing zero digits.
... unless the # flag is used, any trailing zeros are removed from the fractional portion of the result and the decimal-point character is removed if there is no fractional portion remaining. C17dr § 7.21.6.1 8.
All finite floating point values are exactly representable in decimal - some need many digits to print exactly. Up to DBL_DECIMAL_DIG
from <float.h>
(typically 17) significant digits is sufficient - rarely a need for more.
Pass in a precision to encourage enough output, but not too much.
Remember values like 0.00008
are not exactly encoded in the typical binary floating point double
, but a nearby value is used like 8.00000000000000065442...e-05
printf("%.*g\n", DBL_DECIMAL_DIG, some_double);
printf("%.17g, %.17g, %.17g, %.17g\n", 1.27, 345.1415926535, 1.22013, 0.00008);
// 1.27, 345.14159265350003, 1.2201299999999999, 8.0000000000000007e-05
DBL_DIG
(e.g. 15) may better meet OP's goal.
printf("%.15g, %.15g, %.15g, %.15g\n", 1.27, 345.1415926535, 1.22013, 0.00008);
// 1.27, 345.1415926535, 1.22013, 8e-05
Function to print a double
- exactly may take 100s of digits.
Format a float to n decimal places and no trailing zeros
strconv.FormatFloat(10.900, 'f', -1, 64)
This will result in 10.9
.
The -1
as the third parameter tells the function to print the fewest digits necessary to accurately represent the float.
See here: https://golang.org/pkg/strconv/#FormatFloat
Fixed digits after decimal with f-strings
Include the type specifier in your format expression:
>>> a = 10.1234
>>> f'{a:.2f}'
'10.12'
How to display a float with two decimal places?
You could use the string formatting operator for that:
>>> '%.2f' % 1.234
'1.23'
>>> '%.2f' % 5.0
'5.00'
The result of the operator is a string, so you can store it in a variable, print etc.
How to nicely format floating numbers to string without unnecessary decimal 0's
If the idea is to print integers stored as doubles as if they are integers, and otherwise print the doubles with the minimum necessary precision:
public static String fmt(double d)
{
if(d == (long) d)
return String.format("%d",(long)d);
else
return String.format("%s",d);
}
Produces:
232
0.18
1237875192
4.58
0
1.2345
And does not rely on string manipulation.
Related Topics
Spring Security Does Not Allow CSS or Js Resources to Be Loaded
How to Add Parameters to a Http Get Request in Android
How to Delete Firebase Data After "N" Days
What Would Cause a Java Process to Greatly Exceed the Xmx or Xss Limit
Why Does "While(True)" Without "Thread.Sleep" Cause 100% CPU Usage on Linux But Not on Windows
Itext Get Field Coordinates from Existing PDF
Swt Expandlistener Executes Before Collapse Occurs on Linux
Raspberry Pi Can't Hide Mouse Cursor in Javafx Application
Httpservletrequest Get JSON Post Data
Convert JSON Array to Normal Java List
Service Discovery Failed Exception Using Bluetooth on Android
Division in Java Always Results in Zero (0)
How to Create Native Binaries for Your Java App
How to Start Using and Developing on Ubuntu Linux
@Override Compile Error, Implementing an Interface (Eclipse Jdk1.6.0_23 Linux)
Java File Locking Mechanism for File Based Process Communication