function formatPercentageNotNull(value) {
const MAX_DECIMALS = 3;
const MIN_VALUE_FOR_ONE_DECIMAL = 5;
let number;
let str;
let decimal = -1;
do {
decimal += 1;
number = d3.format(`.${decimal}f`)(Math.abs(value) * 100)
str = d3.format(`.${decimal}%`)(value)
} while (parseFloat(number) == 0 && decimal < MAX_DECIMALS)
const d = parseInt(d3.format(`.0f`)(Math.abs(value) * 100))
if (d <= MIN_VALUE_FOR_ONE_DECIMAL && d > 0) {
str = d3.format(`.1%`)(value)
}
return { str, number, value: parseFloat(number) };
}