[SalesForce] Percentage in Lightning Components is not working correctly

It seems like Lightning isn't capable yet, to display percentage values intuitively.
I used many different ways to display the value with input and output formatted as percentage and all the components multiplied my default value "1" times 100 twice.

As sfdcfox pointed out here, Salesforce multiplies percentage fields automatically *100, before sending them to the frontend. This is a great feature! But it seems like unfortunately Lightning does the same thing again.

{!value}
<lightning:input           value="{!value}" type="number" formatter="percent" />
<ui:inputNumber            value="{!value}" format="##.00%" />
<ui:outputNumber           value="{!value}" format="##.00%" />
<lightning:formattedNumber value="{!value}" style="percent" />

results in this:

enter image description here

So Salesforce makes a percentage field with default "1" automatically a 100 when we query it, what worked totally fine with Visualforce and standard UIs, but Lightning Components seem not to be ready for this automation. So we need to divide every raw percentage value by code before displaying/modifying it and multiply it again when we save it to the database.

But this won't be possible for the lightning:input(beta) because it displays 10.000%, but when I click in it, it switches to 100, so there isn't even an easy way to handle this with data modification, we would need to modify it dynamically with events or something.

enter image description here

Best Answer

The Spring'18 Release Notes reveal, that this will be fixed for lightning:input in the upcomming release:

lightning:input

formatter—The percent-fixed formatter is new for type="number". It displays your input value as is, for example, entering 10 results in 10%. Additionally, the percentage value is now rounded off to the last decimal point when the step value is provided. For example, when step="0.001" and a value of 0.12345 is provided with the percent formatter, you see 12.345% instead of 12% on blur. Similarly, when step="0.001" and a value of 12.3456 is provided with the percent-fixed formatter, you see 12.346%.

And I just verified that formatter="percent-fixed" fixed the issue for lightning:input.