1

Тема: виведення числа з обмеженою кількістю значущих цифр

в результаті обрахунку програми, мені потрібно вивести результат в такому вигляді, щоб кількість його значущих цифр дорівнювала шести
яким чином це можна реалізувати?

З.І. Значущою цифрою наближеного числа  називається будь яка цифра в його десятковому представленні, відмінна від нуля, і нуль, якщо він міститься між значущими цифрами чи є представником збереженого десяткового розряду.
Приклад
123,04 – 5 значущих цифр.
0,123 – 3 значущі цифри (1,2,3)

Re: виведення числа з обмеженою кількістю значущих цифр

Cyan написав:

З.І. Значущою цифрою наближеного числа  називається будь яка цифра в його десятковому представленні, відмінна від нуля, і нуль, якщо він міститься між значущими цифрами чи є представником збереженого десяткового розряду.
Приклад
123,04 – 5 значущих цифр.
0,123 – 3 значущі цифри (1,2,3)

Якщо я правильно розумію, то це щось типу цього:

printf("%2.6f",number);

3

Re: виведення числа з обмеженою кількістю значущих цифр

Hanter написав:
Cyan написав:

З.І. Значущою цифрою наближеного числа  називається будь яка цифра в його десятковому представленні, відмінна від нуля, і нуль, якщо він міститься між значущими цифрами чи є представником збереженого десяткового розряду.
Приклад
123,04 – 5 значущих цифр.
0,123 – 3 значущі цифри (1,2,3)

Якщо я правильно розумію, то це щось типу цього:

printf("%2.6f",number);

Гугління дало підозри, що на сях така задача напролом не розв'яжеться, хіба що велосипедним спортом... :(
Фактично, Hanter, вашу ідею можна втілити, однак доведеться пошаманити:

#include <stdio.h>
 
int countOfValuableSingsBeforeComma(float);
 
int main()
{
float x = 3.1415926537;
 
int left = countOfValuableSingsBeforeComma(x);
printf("%.*f", 6-left, x);
//.....
}
 
/* Перше-ліпше, що стукнуло в голову... */
int countOfValuableSingsBeforeComma(float x)
{
    int len = 0;
    for(int new_X = (int)x; new_X; len++, new_X/=10);
    
    return len;
}

Однак на плюсах вийде зручно:

#include <iostream>

using std::cout;
using std::endl;
int main()
{
    float x = 13.1415926537;
    
    cout<<"And about cout..."<<endl;
    cout.width(6);
    cout<<x<<endl;
}

4

Re: виведення числа з обмеженою кількістю значущих цифр

Hanter написав:

Якщо я правильно розумію, то це щось типу цього:

це виводить 6 знаків після коми, хоча, якщо перед комою стоїть не нуль, то це вже в загальному рахунку 7 знаків
але все одно дякую: воно хоч працює і я можу підкорегувати результати (так як на код особливої уваги не звертатимуть)