热门 购物 团购 理财 文学 人才 体育 汽车 游戏 软件 军事 音乐 视频 媒体 论坛 博客 银行 交友 综合
一起购 唯品会 梦芭莎 趣玩网 凡客诚品 麦考林 乐淘鞋网 弗克尚品 绿盒子 俏物悄语 新蛋网 当当网 玛萨玛索
拉手网 糯米网 爱帮团 聚划算 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
filename=dir("盘符:*.*") i = 0 do while filename = "" array1 (i)=filename i = i + 1 filename = dir("c:*.*") loop VB好象也有比较好的方法,但是我不太清楚了 VBScript Set fs = CreateObj…  Details
踏入人生另一阶段---结婚,洞房过后二人关系更加亲密。但对於没有性经验的新婚夫妇,做爱的乐趣反变成了痛苦与负担,若你不想平白浪费了值得一生回味的新婚蜜月期,以下为你提供…  Details
“早吃好,午吃饱,晚吃少”这句俗语人人晓得,但为什么早上要吃好,却很少有人能说出个一二三来。中国疾病预防控制中心营养与食品安全所学生营养研究室的副研究员胡小琪对记…  Details
/** * 任何人任何机构皆可用于任何项目,此软件免费无需书面授权 * 在软件和软件的所有副本中都必须包含版权声明和软件相关注解 * * 模块: number_format.c * 简述: 对浮点…  Details
<%@ Language=VBScript %> <% '几个参考点的数据已经给出,输入参数只有 Xfunction view(result,inputx)'输出结果,同时如果<1 and >0,就在前面补0 if result<1 and result>0 then result=0&result Resp…  Details
着衣而眠,是习惯。很多人没有改变。 脱衣而睡,是享受。很多人正在进行。 裸睡,是一种保健方法,它廉价,无须任何费用;它简单,人人可以掌握;它舒适,人人…  Details
春节,一个喜气洋洋的传统节日。两地分居的夫妻又团聚了,情人们也有更多时间聚首。 情意绵绵之际由于不懂得避孕,导致事后堕胎者不在少数,往年节后均是“人流”的小高峰…  Details
踏入人生另一阶段---结婚,洞房过后二人关系更加亲密。但对於没有性经验的新婚夫妇,做爱的乐趣反变成了痛苦与负担,若你不想平白浪费了值得一生回味的新婚蜜月期,以下为你提供…  Details
Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As LongConst SM_CMOUSEBUTTONS = 43Const SM_CLEANBOOT = 67Private Sub Form_Load()Dim mode As LongDim NumbButtons As Longmode = GetSystemMetrics(SM_CLEANBOOT)Select…  Details