Как вывести дробное число в c
Перейти к содержимому

Как вывести дробное число в c

  • автор:

Как вывести дробное число в c

// Класс дробное число2.cpp: определяет точку входа для консольного приложения.
//

#include «stdafx.h»
#include
using namespace std;

class drob private:
double cl;double zn; double ch; double n;
public:
void arrcl(double);
void arrzn(double);
void arrch(double);
void print();

drob arrdrob;
arrdrob.arrcl (1);
arrdrob.arrch (1);
arrdrob.arrzn (1);
arrdrob.print ();

Типы данных

Вывод действительных чисел на C++ Перед выводом действительных чисел (float, double, long double) следует указать выходному потоку точность вывода. Например:

float x; x = 123.456789; cout.setf(ios::fixed); // вывод в фиксированном формате cout.precision(6); // вывод до 6 знака после точки, включительно cout

Вы используете гостевой доступ (Вход)

Эта страница: General type: incourse. Context Страница: Вывод действительных чисел на C++ (context id 276028). Page type mod-page-view.

Вывести дробное число прописью

Для вывода прописью дробного числа используется функция встроенного языка ЧислоПрописью(). Данная функция, принимает на вход параметр «ПараметрыПредметаИсчисления». С помощью этого параметра можно задать наименования целой и дробной части в разных падежах. Так как дробная часть может содержать разное количество знаков, то наименования целой и дробной части необходимо задавать в зависимости от этого количества.

Функция ПолучитьДробноеЧислоПрописью()

Представленная функция формирует строковое представление дробных чисел с точностью 9 знаков после запятой. На вход функция получает дробное число и возвращает его строковое представление.

Пример
ВыводимоеЧисло — 32.400567899
Результат — «Тридцать две целых четыреста миллионов пятьсот шестьдесят семь тысяч восемьсот девяносто девять миллиардных»

Функция ПолучитьДробноеЧислоПрописью(ВыводимоеЧисло) 

ДробнаяЧасть = ВыводимоеЧисло - Цел(ВыводимоеЧисло);
КоличествоЗнаков = ?(ДробнаяЧасть = 0, 0, СтрДлина(ДробнаяЧасть) - 2);

Если КоличествоЗнаков = 1 Тогда
ПараметрыПредметаИсчисления = "целая, целых, целых, ж,
|десятая, десятых, десятых, ж, 1"
;
ИначеЕсли КоличествоЗнаков = 2 Тогда
ПараметрыПредметаИсчисления = "целая, целых, целых, ж,
|сотая, сотых, сотых, ж, 2"
;
ИначеЕсли КоличествоЗнаков = 3 Тогда
ПараметрыПредметаИсчисления = "целая, целых, целых, ж,
|тысячная, тысячных, тысячных, ж, 3"
;
ИначеЕсли КоличествоЗнаков = 4 Тогда
ПараметрыПредметаИсчисления = "целая, целых, целых, ж,
|десятитысячная, десятитысячных,
|десятитысячных, ж, 4"
;
ИначеЕсли КоличествоЗнаков = 5 Тогда
ПараметрыПредметаИсчисления = "целая, целых, целых, ж,
|стотысячная, стотысячных, стотысячных, ж, 5"
;
ИначеЕсли КоличествоЗнаков = 6 Тогда
ПараметрыПредметаИсчисления = "целая, целых, целых, ж,
|миллионная, миллионных, миллионных, ж, 6"
;
ИначеЕсли КоличествоЗнаков = 7 Тогда
ПараметрыПредметаИсчисления = "целая, целых, целых, ж,
|десятимиллионная, десятимиллионных,
|десятимиллионных, ж, 7"
;
ИначеЕсли КоличествоЗнаков = 8 Тогда
ПараметрыПредметаИсчисления = "целая, целых, целых, ж,
|стомиллионная, стомиллионных,
|стомиллионных, ж, 8"
;
ИначеЕсли КоличествоЗнаков = 9 Тогда
ПараметрыПредметаИсчисления = "целая, целых, целых, ж,
|миллиардная, миллиардных, миллиардных, ж, 9"
;
Иначе
ПараметрыПредметаИсчисления = ". 0";
КонецЕсли;

Возврат ЧислоПрописью(ВыводимоеЧисло, "Л=ru_RU; ДП=Истина", ПараметрыПредметаИсчисления);

КонецФункции

Комментарии (0)

О сайте Обратная связь Правила Новости 1С Copyright © 2024
Цитирование материалов (тексты, изображения, программный код) допускается только с размещением активной ссылки на сайт 1CLenta.ru

Как на СИ преобразовать вводимое дробное или целое число в внутренний формат(спт/сфт) и вывести его?

Здравствуйте, как мне преобразовать на си число(дробное. целое) в внутренний формат(спт/сфт). Мне нужно реализовать известный алгоритм преобразования, но пока у меня не получается. Я накидал шаблон, но дальше пока не могу двигаться. Спасибо большое.

#include #include . . . unsigned char representation[sizeof(float)]; float x = 76.625; memcpy(representation, &x, sizeof(x)); for (int i = sizeof(x) - 1; i >= 0; i--) < unsigned char byteRep = representation[i]; //0..255 //перевести это число в 16-сс и вывести, можно по 2-м цифрам >
  • Вопрос задан более трёх лет назад
  • 1610 просмотров

Комментировать
Решения вопроса 1
«I’m here to consult you» © Dogbert

как мне преобразовать на си число(дробное. целое) в внутренний формат(спт/сфт)

Что такое спт/сфт? С Плавающей Точкой -> С Фиксированной Точкой?
Просто умножить на 2^(количество битов в дробной части представления с фиксированной точкой) и взять целую часть от результата. Например, для представления с фиксированной точкой 16.16:

float x = 76.625; uint32_t fix = (int32_t)(x * (1 

Вывести его проще всего приведя к типу float и поделив на 2 ^ (количество битов в дробной части представления с фиксированной точкой):
printf("%f\n", (float)fix / (1
Ответ написан более трёх лет назад
Нравится 1 1 комментарий
mr_firuzinho @mr_firuzinho Автор вопроса

как мне преобразовать на си число(дробное. целое) в внутренний формат(спт/сфт)

Т.е как именно преобразовать в число с плавающей точкой и, как это же самое число в чисто с фиксированной точкой

Ответы на вопрос 1
Developer, ex-admin

Не понял то такое спт/сфт.
Но в функциях printf есть спецификаторы для вывода в 16-сс.
Если вручную, то я бы завел массив из 16 элементов char, куда записал шестнадцатиричные цифры, потом берете половину байта как индекс массива и строите строку из элементов массива.

Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

c

  • C

Контринтуитивный синтаксис объявления нескольких переменных одного типа?

  • 1 подписчик
  • 28 февр.
  • 114 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *