Home >Java >javaTutorial >How Can I Format Floating-Point Numbers to Avoid Unnecessary Trailing Zeros?
Formatting Floating-Point Numbers with Precise Control
When dealing with floating-point numbers, it's often desirable to format them aesthetically without unnecessary decimal zeros. Consider the task of printing a range of values that include integers stored as doubles and genuine doubles.
Avoiding Trailing Zeros with Specific Format Codes
While String.format("%f", value) may seem suitable, it appends trailing zeros for small values. To achieve the desired precision, consider employing alternative format codes:
Custom Formatting Function with Decimal Check
For precise control, implement a custom formatting function that differentiates between integers and doubles:
public static String fmt(double d) { if (d == (long) d) return String.format("%d", (long) d); else return String.format("%s", d); }
This function checks if the double value represents an integer (using casting coerced to long). If it does, it formats the value as an integer using String.format("%d"); otherwise, it formats the double without unnecessary precision.
Output Example:
Using this custom function, the desired output can be achieved:
232 0.18 1237875192 4.58 0 1.2345
Note on Locale Considerations
String formatting is locale-sensitive. The precise formatting results may vary depending on regional settings.
The above is the detailed content of How Can I Format Floating-Point Numbers to Avoid Unnecessary Trailing Zeros?. For more information, please follow other related articles on the PHP Chinese website!