Android getString(): xliff format float / double

android, xliff

Solution

You can define the number of decimal places in the `xliff` placeholder individually for each number as follows:

<string name="test">
    First <xliff:g id="first_number" example="100.123">%1$.4f</xliff:g> number 
    is and second number is <xliff:g id="second_number" example="200.12">%2$.2f</xliff:g>.
</string>

Usage:

mContext.getString(R.string.test, 100.123456789, 200.123456789);

Output:

First number is 100.1234 and second number is 200.12.

Please note that you have to use numbered placeholder as here `%1f`, `%2f`, ...

The placeholder structure is as follows for the example `%1$.4f`:

- `%1` is the serial number

- `f` is the data type, float in this case

- `.4` defines the number of decimal places for the float, four in this case

Problem

Howto format strings with xliff using floats and doubles (decimal places)? ``` <string name="test">Test <xliff:g id="float1">%1$f</xliff:g> <xliff:g id="float2">%1$.2f</xliff:g></string> ``` Code: ``` mContext.getString(R.string.test, 1.23456); ```

Original source