Четвертый BORLAND С++ и его окружение

       

Преобразования двоично-десятичных чисел


Тип bcd - это определяемый тип, отличный от float, double

или long double. Десятичная арифметика выполняется только когда

хотя бы один операнд имеет тип bcd.

Для преобразования двоично-десятичного числа обратно к обычной системе счисления с основанием 2 (тип float, double или long

double), служит функция-элемент real класса bcd. Функция real выполняет все необходимые преобразования к типам long, double или

lognd double, хотя такое преобразование не выполняется автоматически. Функция real выполняет все необходимые преобразования к

типу long double, который может быть затем преобразован к другим

типам при помощи обычных средств языка Си. Например:

/* Печать чисел BCD */

#include <bcd.h>

#include <iostream.h>

#include <stdio.h>

void main(void) {

bcd a = 12.1;

double x = real(a); /* преобразование для печати

printf("\na = %Lg", real(a));

printf("\na = %g", (double)real(a));

cout << "\na =" << a; /* рекомендуемый метод

Отметим, что поскольку printf не выполняет контроль типа аргументов, спецификатор формата должен иметь L, если передается

значение real(a) типа long double.



Содержание раздела