const precisionFormatEther = (value, prec = 4) => {
if (!value || !Number.isInteger(Number(value)) || Number(value) < 0) return '0'
let x, y, z
x = formatEther(value.toString())
y = x.indexOf('.')
z = x.slice(y + 1, y + prec + 1)
while (z.endsWith('0')) {
z = z.slice(0, -1)
}
return x.slice(0, y) + (z === '' ? '' : ('.' + z))
}
console.log('-------', precisionFormatEther('11987800000000000000', 10));
// function removeTrailingZeros(number) {
// let trimmed = Number(number).toString();
// if (trimmed.includes('.')) {
// const parts = trimmed.split('.');
// if (parts[1].length > 4) {
// parts[1] = parts[1].substring(0, 4);
// }
// while (parts[1].endsWith('0') && parts[1].length > 1) {
// parts[1] = parts[1].slice(0, -1);
// }
// trimmed = parts.join('.');
// }
// return trimmed;
// }
// function removeTrailingZeros(number) {
// let trimmed = Number(number).toString();
// if (trimmed.includes('.')) {
// while (trimmed.endsWith('0') && trimmed.includes('.')) {
// trimmed = trimmed.slice(0, -1);
// }
// }
// if (trimmed.endsWith('.')) {
// trimmed = trimmed.slice(0, -1);
// }
// return trimmed;
// }