Я пытаюсь управлять ошибку точки плавающий, используя только 2 наиболее значимых ценностей после периода:Контроллинг плавающей ошибки Пункта
static float lowerPrecision(float highPrecisionFloat)
{
char buff[8] = {0};
sprintf(buff, "%.2f", highPrecisionFloat);
float lowerPrecisionFloat = atof(buff);
return lowerPrecisionFloat;
}
void main(void)
{
float highPrecisionFloat = 127/100.0;
printf("highPrecisionFloat: %.12f\n", highPrecisionFloat);
float lowerPrecisionFloat = lowerPrecision(highPrecisionFloat);
printf("lowerPrecisionFloat: %.12f\n", lowerPrecisionFloat);
}
возвратов:
highPrecisionFloat: 1.269999980927
lowerPrecisionFloat: 1.269999980927
Почему моя реализация ISN» (я предполагаю, что это ошибка), и можно ли это исправить?