Как правильно отобразить число если количество знаков после 0 меньше, чем отображаемое число

Ввожу стороны равностороннего треугольника 1e-10 и программа спрашивает сколько нужно оставить чисел после запятой, и я ввожу 12 например (у меня стоит ограничение от 1 до 12 по тз) и програма вычисляет площадь, высоты, бессектрисы и т.д а для отображения например площади нужно больше чисел после запятой. Как реализовать в if проверку больше ли у площади знаков после запятой чем наше введенное ограничения или проверка отображает ли printf площадь только с нулями и если да, то число отобразится через экспоненту.

Применый воспроизводимый код:

#include <stdio.h>
#include <stdlib.h >
#include <math.h>
#include <string.h>
int main(){
    int decimal = 0;
    double number = 0;
    double area, p, pp;
    printf("Enter number /n");
    scanf_s("%f", &number);
    printf("Enter the number of decimal places(from 0 to 12): \n");
    scanf_s("%d", &decimal);
    if (decimal > 12 || decimal < 0) {
                printf("The number of decimal places is more than 12 or less than 0 \n");
    }
    double p = numbera + numberb + numberc;
    double pp = p/2;
    double area = sqrt(pp * (pp - numbera) * (pp - numberb) * (pp - numberc))
    if(){ ///Проверка больше ли у `area` знаков после запятой чем наше введенное ограничение `decimal` или проверка отображает ли `printf` `area` только с нулями и если да, то число отобразится через экспоненту
        printf("Area: %.e \n", decimal, area);
    }
    else{
        printf("Area: %.*f \n", decimal, area);
    }
}
    


Ответы (0 шт):