I am trying to format a double to exact 2 decimal places if it has fraction, and cut it off otherwise using DecimalFormat
So, I'd like to achieve next results:
100.123 -> 100.12
100.12 -> 100.12
100.1 -> 100.10
100 -> 100
Variant #1
DecimalFormat("#,##0.00")
100.1 -> 100.10
but
100 -> 100.00
Variant #2
DecimalFormat("#,##0.##")
100 -> 100
but
100.1 -> 100.1
Have any ideas what pattern to choose in my case?
The only solution i reached is to use if statement like was mentioned here: https://stackoverflow.com/a/39268176/6619441
Testing
If someone knows more elegant way, please share it!
I believe we need an if statement.
The margin allowed for a number to be regarded as an integer should be chosen according to the situation. Just don’t assume you will always have an exact integer when you expect one, doubles don’t always work that way.
With the above declaration
myFormat(4)
returns4
,myFormat(4.98)
returns4.98
andmyFormat(4.0001)
returns4.00
.