Я написал программу на C и использую cJSON для инкапсуляции данных и отправки в Firebase.
Я просто хочу, чтобы число было числом, чтобы я мог выполнить некоторые вычисления в Firebase.
Здесь все становится грязно.
double 24.9
Это возвращает
24.899999999999999
Так, например,
round((399 / 16.0) * 10.0) / 10.0 = 24.8999999
Мне нужен только один десятичный знак, я хочу 24,9, мне нужно, чтобы он был представлен в виде числа. Похоже, мне просто нужно сделать sprintf () и использовать RAW в cJSON. Если в C нет другого способа сохранить мои 24,9 как 24,9.
Этот вопрос не задает вопросы о том, как работает плавающая точка. Я в курсе проблем. Однако я не видел подходящего метода для его решения.