Как правильно отобразить число если количество знаков после 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);
}
}