cmoney_t& cmoney_t::operator+=(const cmoney_t& in) { decContext set; decContextDefault(&set, DEC_INIT_DECQUAD); // initialize4. //decQuadPlus (&v->impl,&in.v->impl,&set); decQuadAdd (&v->impl,&v->impl,&in.v->impl,&set); return *this; }
int testDecQuad() { int i; decQuad a, b; decContext set; char string[DECQUAD_String]; decContextDefault(&set, DEC_INIT_DECQUAD); // initialize decQuadFromString(&a, "0.13", &set); decQuadFromString(&b, "8.7", &set); for (i = 0; i < 10; i++) decQuadAdd(&b, &a, &b, &set); // b += a; decQuadToString(&b, string); printf("dec128: 8.7 + 0.13 * 10 => %s\n", string); return 0; }
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