packages feed

HasCacBDD-0.1.0.0: cpp/XFunction.h

#ifndef _FUNCTION_
#define _FUNCTION_

#include <stdio.h>
#include <cmath>
#include <iostream>
#include <string>
using namespace std;

class XFunction{
public:
    static float  format_float(float v, int dotCnt) //dotCnt
    {
        if(dotCnt > 6) dotCnt = 6;

        float k = pow(10.0f, dotCnt);
        float i = floor(v * k) / k;
        return i;
    }

    static double  format_double(double v, int dotCnt) //dotCnt
    {
        if(dotCnt > 6) dotCnt = 6;

        double k = pow(10.0f, dotCnt);
        double i = floor(v * k) / k;
        return i;
    }

    static string Format(int v, int outlen)
    {
        char buf[50];
        memset(buf, 0, 50);
        sprintf(buf, "%d", v);
        string r = buf;
        size_t k = r.length();
        for(int i=0; i<outlen-k; i++){
            r = r+' ';
        }
        return r;
    }

    static string Format(long long v, int outlen)
    {
        char buf[50];
        memset(buf, 0, 50);
        sprintf(buf, "%lld", v);
        string r = buf;
        size_t k = r.length();
        for(int i=0; i<outlen-k; i++){
            r = r+' ';
        }
        return r;
    }

    static string Format(double v, int outlen, int dotlen = 2)
    {
        v = format_double(v, dotlen);
        char buf[50];
        memset(buf, 0, 50);
        sprintf(buf, "%f", v);
        string r = buf;
        int k = (int)r.length();
        for(int i=0; i<outlen-k; i++){
            r = r+' ';
        }
        return r;
    }

    static string Format(const char *v, int slen, int outlen)
    {
        if(outlen < slen){ outlen = slen; }

        string r = v;
        for(int i=0; i<outlen - slen; i++){
            r = r + ' ';
        }
        return r;
    }
};

#endif