Beispiel #1
0
void  
cmoney_t::from_str (const std::string& in)
{
   decContext set;
   //char strbuff2[DECQUAD_String];   
   decContextDefault(&set, DEC_INIT_DECQUAD); // initialize4.  
   decQuadFromString( &v->impl,in.c_str(),&set);   
}
Beispiel #2
0
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;
}
Beispiel #3
0
void  
cmoney_t::from_wstr (const std::wstring& in)
{

char utf8ASCIIstr[DECQUAD_String];   
   
#ifdef WIN32

/*
int WideCharToMultiByte(
  UINT CodePage, 
  DWORD dwFlags, 
  LPCWSTR lpWideCharStr, 
  int cchWideChar, 
  LPSTR lpMultiByteStr, 
  int cbMultiByte, 
  LPCSTR lpDefaultChar, 
  LPBOOL lpUsedDefaultChar 
);
*/


::WideCharToMultiByte(CP_UTF8, 0, 
                           (LPWSTR)in.c_str(), in.length(),
                           utf8ASCIIstr, DECQUAD_String,NULL,NULL);
                           
                           
   decContext set;   
   decContextDefault(&set, DEC_INIT_DECQUAD); // initialize4.  
   decQuadFromString( &v->impl,utf8ASCIIstr,&set);
                           
#else   

   assert(0);
   std::cerr<<"cannot convert to decQuad from widechar "<<endl;
#endif
   
}
Beispiel #4
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