float тип данных языка Си.

Обычно занимает 32 бита (4 байта)
Диапазон представляемых значений -3,4E–38 - 3,4E+38 (значения FLT_MIN и FLT_MAX из float.h)
Спецификатор формата %f
Верных значимых цифр 6-9 (значение FLT_DIG из float.h)
Для обозначения числа с плавающей точкой одинарной точности (float) используется запись типа 3.14f (на конце символ f, без него - число двойной точности double, при наличии точки). Если число как будто целое, например 14, то для того чтобы оно было float нужно добавить .0f к числу 14.0f (можно добавить только .f к числу 14.f)

// Ввод и вывод float в(из) консоли
#include <stdio.h> // printf() scanf()
int main(){
    float a = 1.3;
    printf("a = %f \nInput float number in format *.* \n", a); // Выводим float и приглашение в вводу
    scanf("%f", &a);   // Вводим float
    printf("You input %f \n", a); // Выводим float
    return 0;
}

Пример программы с преобразованием в строку и обратно на странице char


float val_float = atof(str_float); // Преобразование строки в float <stdlib.h>
sprintf_s(buf_float, buf_size, "%f", val_float); // Преобразование float в строку

Проверка на NaN (не число) или на плюс минус бесконечность


#include < math.h >  
int isnan (float x); // Возвращает 0  если x конечное число или бесконечность. Отличное от нуля значение, если проверяемый аргумент не число (NAN).
int isinf (float x); // Возвращает 0, если x конечное число или не число (nan). Отличное от нуля значение, если проверяемый аргумент плюс или минус бесконечность.

Полноценная программа демонстрирующая проверки на бесконечность и "не число"


#include <stdio.h> //printf()
#include <math.h> // isnan(), isinf()
int main(){
    float a = 3.0;
    printf("a = %f, isnan = %d, isinf = %d \n", a, isnan(a), isinf(a)); // a = 3.000000, isnan = 0, isinf = 0
    float res = a / 0; // Деление на ноль
    printf("res = %f, isnan = %d, isinf = %d \n", res, isnan(res), isinf(res)); // res = 1.#INF00, isnan = 0, isinf = 1
    res = NAN; // Присваиваем значение "не число"
    printf("res = %f, isnan = %d, isinf = %d \n", res, isnan(res), isinf(res)); // res = 1.#QNAN0, isnan = -1, isinf = 0
    res = INFINITY; // Присваиваем значение "бесконечность"
    printf("res = %f, isnan = %d, isinf = %d \n", res, isnan(res), isinf(res)); // res = 1.#INF00, isnan = 0, isinf = 1
}
2023-03-21



Понравилась страница?
Добавить в закладки
Или поделиться!

Связанные темы

bool тип данных в языке Си.
Тип данных char в языке Си.
double тип данных языка Си. Число с плавающей точкой с двойной точностью.
Тип данных enum (или перечисление) в языке Си.
float тип данных языка Си.
int целочисленный тип данных языка Си.
long и long long целочисленные типы данных в языке Си.
short тип данных языка Си.
size_t тип данных языка Си.
struct тип данных языка Си.
union или объединение - тип данных в языке Си.
Ключевое слово языка Си _Bool