热门 购物 团购 理财 文学 人才 体育 汽车 游戏 软件 军事 音乐 视频 媒体 论坛 博客 银行 交友 综合
一起购 唯品会 梦芭莎 趣玩网 凡客诚品 麦考林 乐淘鞋网 弗克尚品 绿盒子 俏物悄语 新蛋网 当当网 玛萨玛索
拉手网 糯米网 爱帮团 聚划算 58团购 美团网 QQ团购 大众点评团 窝窝团 美淘网 满座网 团宝网 饭统饭团
起点网 榕树下 小说阅读 潇湘书院 红袖添香 幻剑书盟 新浪游戏 太平洋游戏 163邮箱 中国游戏 游戏中国 霏凡软件 铁血军事
访问本站赠送红包啦!凡在支付宝搜索数字口令 528131323 都将获得红包,天天搜索此口令天天得红包^_^
Health Sitology Family Finance Appliances Shopping Clothing Education Legal Rituals Beauty Property Travel Pet Medical Cyclopedia History Military Computers Sports Job Anecdote Geographic Mixed Entertain Literature Emotion Agriculture
/**
 * 任何人任何机构皆可用于任何项目,此软件免费无需书面授权
 * 在软件和软件的所有副本中都必须包含版权声明和软件相关注解
 *
 * 模块: number_format.c
 * 简述: 对浮点数进行四舍五入 以千位分隔符方式格式化一个数字
 * 作者: woods zhang  ->  hoojar@163.com -> http://www.hecart.com/
 * 版权: 2006-2018, 张树林 拥有此源码所有版权 (MIT许可协议)
 * Copyright 2006-2018, Woods Zhang All Rights Reserved (The MIT License)
 */
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include <ctype.h>

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(10.0, (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;
}
Reply content :
Photo link :
在人际交往中,人们的感情流露和交流经常会借助于人体的各种器官和姿态,这就是我们通常所说的"体态语言"。它作为一种无声的"语言",在生活中被广泛地运用,在社交活动中有着特殊的…  Details
在互连网络高速发展的今天,WEB的后台开发已日益成为开发的焦点;激烈地商业竞争,也促使人们对WEB后台程序有了更高的要求。本文将向您介绍一种新型的CGI程序编写语言PHP3,它简单易学…  Details
女人的体态语言不仅使一些羞于启齿的信息自然地流露出来,而且使女人看起来更动人。男人如果不能适时有效地读懂女性的体态语言,就很难深切地了解女人。 从头部看女人 …  Details
/** * 任何人任何机构皆可用于任何项目,此软件免费无需书面授权 * 在软件和软件的所有副本中都必须包含版权声明和软件相关注解 * * 模块: strdel.c * 简述: 根据指定位…  Details
男人女人有着一样的性爱渴望,却使用着不同的性爱语言,读懂男人的性语言,女人就掌握了走向“性”福婚姻的秘诀。 1、男人通过做爱宣泄情绪男人通常“有泪不轻弹”。而…  Details
So now you have a drink, but what about meeting the locals? Pub-goers will indicate in unspoken ways if they are interested in chatting. Concentrate on those who have bought drinks and are still loitering at the bar. Those who have moved to sit at …  Details
=============================  ■□ 第9节:自由记忆体管理  =============================    Q33:"delete p" 会删去 "p" 指标,还是它指到的资料,"*p" ?    …  Details
语言的发育是一个极其复杂的过程,需要经过一个相当漫长的时间。孩子从不会说话到会说话要经历三个阶段,也就是首先要学会发音,然后会理解语言,最后才会表达语言。不是像有些家长…  Details
RT从心情深处得到的慰藉幸福就睁开眼睛第一眼看见的就是你欢乐的泪水飘洒的过程…… …  Details
php3:跨平台的服务器端嵌入式脚本语言 标 题: php3:跨平台的服务器端嵌入式脚本语言(1) 服务器端脚本技术是一种非常有用的东西,将它和客户端脚本技术联合起来应用可以 制作…  Details