mirror of
https://github.com/SDL-Hercules-390/hyperion.git
synced 2026-04-16 08:55:23 +02:00
40 lines
1.7 KiB
C
40 lines
1.7 KiB
C
/* ------------------------------------------------------------------ */
|
|
/* Decimal Number Library Demonstration program */
|
|
/* ------------------------------------------------------------------ */
|
|
/* Copyright (c) IBM Corporation, 2001, 2007. All rights reserved. */
|
|
/* ----------------------------------------------------------------+- */
|
|
/* right margin -->| */
|
|
|
|
// example8.c -- using decQuad with the decNumber module
|
|
|
|
// compile: example8.c decContext.c decQuad.c
|
|
// and: decNumber.c decimal128.c decimal64.c
|
|
|
|
#include "decQuad.h" // decQuad library
|
|
#include "decimal128.h" // interface to decNumber
|
|
#include <stdio.h> // for printf
|
|
|
|
int main(int argc, char *argv[]) {
|
|
decQuad a; // working decQuad
|
|
decNumber numa, numb; // working decNumbers
|
|
decContext set; // working context
|
|
char string[DECQUAD_String]; // number->string buffer
|
|
|
|
if (argc<3) { // not enough words
|
|
printf("Please supply two numbers for power(2*a, b).\n");
|
|
return 1;
|
|
}
|
|
decContextDefault(&set, DEC_INIT_DECQUAD); // initialize
|
|
|
|
decQuadFromString(&a, argv[1], &set); // get a
|
|
decQuadAdd(&a, &a, &a, &set); // double a
|
|
decQuadToNumber(&a, &numa); // convert to decNumber
|
|
decNumberFromString(&numb, argv[2], &set);
|
|
decNumberPower(&numa, &numa, &numb, &set); // numa=numa**numb
|
|
decQuadFromNumber(&a, &numa, &set); // back via a Quad
|
|
decQuadToString(&a, string); // ..
|
|
|
|
printf("power(2*%s, %s) => %s\n", argv[1], argv[2], string);
|
|
return 0;
|
|
} // main
|