您的位置 首页 > 数码极客

如何格式化c盘,格式化了还能恢复吗

/**

* 任何人任何机构皆可用于任何项目,此软件免费无需书面授权

* 在软件和软件的所有副本中都必须包含版权声明和软件相关注解

*

* 模块: number_

* 简述: 对浮点数进行四舍五入 以千位分隔符方式格式化一个数字

* 作者: woods zhang -> hoojar@163.com ->

* 版权: 2006-2018, 张树林 拥有此源码所有版权 (MIT许可协议)

* Copyright 2006-2018, Woods Zhang All Rights Reserved (The MIT License)

*/

#include <;

#include <;

#include <ma;

#include <;

#include <c;

static inline double intpow10(int power)

{

static const double powers[] =

{

1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7,

1e8, 1e9, 1e10, 1e11, 1e12, 1e13, 1e14, 1e15,

1e16, 1e17, 1e18, 1e19, 1e20, 1e21, 1e22

};

/* Not in lookup table */

if (power < 0 || power > 22)

{

return pow, (double)power);

}

return powers[power];

}

/**

* 对浮点数进行四舍五入

*

* @param val 要处理的值

* @param dec 可选的十进制小数点后数字的数目

* @return 返回将 val 根据指定精度 precision(十进制小数点后数字的数目)进行四舍五入的结果。precision 也可以是负数或零(默认值)

*/

double php_round(double val, int dec)

{

if (dec <= 0)

{

return round(val);

}

dec = intpow10(dec);

return round(val * dec) / dec;

}

/**

* 以千位分隔符方式格式化一个数字

*

* @param haystack 执行替换字符串

* @return 执行成功后的字符串

*/

char *number_format(double d, int dec, char dec_point, char thousand_sep)

{

int point = 0;

static char fmt[50] = {0};

sprintf(fmt, "%f", php_round(d, dec));

char *str = fmt;

while (*str)

{

if (*str == '.')

{

*str = dec_point;

point = 1;

}

else if (point > 0)

{

if (point > dec)

{

*str = 0;

break;

}

point++;

}

str++;

}

point = 0;

int p = 0, i = strlen(fmt);

while (*(--str))

{

--i;

if (point > 0)

{

if (point % 3 == 0)

{

for (p = strlen(fmt); p >= i; --p)

{

*(fmt + p + 1) = *(fmt + p);

}

*(fmt + i) = thousand_sep;

}

point++;

}

else if (*str == dec_point)

{

point = 1;

}

}

return (fmt[0] == ',') ? fmt + 1 : fmt;

}

int main(void)

{

double num = 123456.4569;

printf("round dec 2 (%f): %f ", num, php_round(num, 2));

printf("round dec 3 (%f): %f ", num, php_round(num, 3));

printf("number_format: %s ", number_format(num, 2, '.', ','));

printf("number_format: %s ", number_format(num, 3, '.', ','));

return 0;

}

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“如何格式化c盘,格式化了还能恢复吗,如何格式化c盘和d盘,如何格式化c盘,win10,如何格式化c盘win7”边界阅读