Как отформатировать float в C без значащих цифр? - PullRequest
1 голос
/ 05 февраля 2020

Я хочу, чтобы выходные данные выглядели так:

input : 1999.99
output: 999.99 

Я хочу вырезать более значимые цифры.

Я использовал C формат, подобный этому

%.2f  ==> 10.44, 23.23, 5.67

А теперь мне нужно сократить до десятичной точки.

Есть какое-нибудь решение?

1 Ответ

5 голосов
/ 05 февраля 2020

Усечение дополнительные цифры старшего разряда по запросу могут быть получены с помощью функции fmod():

#include <math.h>
#include <stdio.h>

void format_3_2(double input) {
    printf("%.2f", fmod(input, 1000.0));
}

вход: 1999.99
выход: 999.99

Обратите внимание, что вам также следует округлить входное значение до , применяя функцию fmod(), чтобы избежать этого: printf("%.2f", fmod(1999.999, 1000.0)); -> 1000.00. Для этого используйте функцию round:

#include <math.h>
#include <stdio.h>

void format_3_2(double input) {
    printf("%.2f", fmod(round(input * 100.0) / 100.0, 1000.0));
}

вход: 1999.999
выход: 0.00

...