hikyuu2/hikyuu_cpp/hikyuu/utilities/util.h

89 lines
1.9 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* util.h
*
* Created on: 2009-11-20
* Author: fasiondog
*/
#pragma once
#ifndef HIKYUU_UTILIIES_UTIL_H_
#define HIKYUU_UTILIIES_UTIL_H_
#ifndef DATATYPE_H_
#include <string>
#ifndef HKU_API
#define HKU_API
#endif
#endif /* DATATYPE_H_ */
namespace hku {
#ifndef DATATYPE_H_
using std::string;
#endif
/**
* @ingroup Utilities
* @{
*/
#if defined(_MSC_VER)
string HKU_API utf8_to_gb(const char* szinput);
string HKU_API utf8_to_gb(const string& szinput);
string HKU_API gb_to_utf8(const char* szinput);
string HKU_API gb_to_utf8(const string& szinput);
#else
string HKU_API utf8_to_gb(const string& szinput);
string HKU_API gb_to_utf8(const string& szinput);
#endif
/**
* Windows平台下将字符串由UTF8转换为GB2312编码
* Linux平台下不做任何事
* @note 为跨平台源代码文件必须使用UTF8编码保存程序中出现的
* 中文字符串应使用HKU_STRstd::cout << HKU_STR("中国")
*/
#if defined(_MSC_VER) && (PY_VERSION_HEX < 0x03000000)
//将utf8编码的字符串转换为GB2312编码
#define UTF8ToGB utf8_to_gb
#define GBToUTF8 gb_to_utf8
#define HKU_STR(s) UTF8ToGB(s)
#else
#define HKU_STR(s) (s)
#define GBToUTF8(s) (s)
#define UTF8ToGB(s) (s)
#endif
/**
* 四舍五入ROUND_HALF_EVEN 银行家舍入法
* @param number 待四舍五入的数据
* @param ndigits 保留小数位数
* @return 处理过的数据
*/
double HKU_API roundEx(double number, int ndigits=0);
/**
* 向上截取如10.1截取后为11
* @param number 待处理数据
* @param ndigits 保留小数位数
* @return 处理过的数据
*/
double HKU_API roundUp(double number, int ndigits=0);
/**
* 向下截取如10.1截取后为10
* @param number 待处理数据
* @param ndigits 保留小数位数
* @return 处理过的数据
*/
double HKU_API roundDown(double number, int ndigits=0);
/** @} */
} /* namespace */
#endif /* HIKYUU_UTILIIES_UTIL_H_ */