精华内容
下载资源
问答
  • 同学前端面试遇到这么一个题目 :给数字添加千分位分隔符一拿到他给的面试题,感觉挺容易的,不过等自己写后发现非常考虑逻辑,以及思维能力(我是小白)上网百度了一波全是用正则表达式来解决的,正则这块我只懂皮毛...

    同学前端面试遇到这么一个题目 :给数字添加千分位分隔符

    一拿到他给的面试题,感觉挺容易的,不过等自己写后发现非常考虑逻辑,以及思维能力(我是小白)

    上网百度了一波全是用正则表达式来解决的,正则这块我只懂皮毛,所以感觉有点看不明白,不过这个博客解释挺清楚的使用正则表达式实现千位分割符

    我这个人就是有一个毛病,感兴趣的东西我就想以自己的思维写出来,所以以下是一个前端小白的解决思路:

    将函数thousand的参数a看成3部分组合head,body,xiaoshu.列如:1314.520可当做1 314 .520这三部分组合而成。废话少说,代码如下:

    function thousand(a){

    var arr = new Array();

    var xiaoshu = ""; //用来记录参数小数数值包括小数点

    var zhengshu =""; //用来记录参数录整数数值

    if(a<1000){ //当参数小于1000的时候直接返回参数

    return a;

    }else{

    t = a.toString(); //将整数转换成字符串

    if(t.indexOf('.')>0){ //如果参数存在小数,则记录小数部分与整数部分

    var index = t.indexOf('.');

    xiaoshu = t.slice(index,t.length);

    zhengshu = t.slice(0,index);

    }else{ //否则整数部分的值就等于参数的字符类型

    zhengshu = t;

    }

    var num = parseInt(zhengshu.length/3); //判断需要插入千位分割符的个数

    //将整数1234567890部分拆分为2部分,变量head:1 变量body:123456789

    var head = zhengshu.slice(0,zhengshu.length-num*3);

    if(head.length>0){ //如果head存在,则在head后面加个千位分隔符,

    head += ',';

    }

    var body = zhengshu.slice(zhengshu.length-num*3,zhengshu.length);

    //将body字符串123456789转换成一个字符数组arr2 = ['123','456','789']

    var arr2 = new Array();

    for(var i=0;i

    arr2.push(body.slice(i*3,i*3+3));

    }

    body = arr2.join(','); //将数组arr2通过join(',') 方法,拼接成一个以逗号为间隔的字符串

    zhengshu = head + body; //拼接整数部分

    var result = zhengshu + xiaoshu; //最后拼接整数和小数部分

    return result; //返回结果

    }

    }

    console.log(thousand(665565656511325161.233333));

    小白敬上!

    展开全文
  • 将普通的数字转换为带千位分隔符格式的数字字符串是一个非常常见的问题,千位分隔符格式的规则是数字的整数部分每三位一组,以“,”分节。小数部分不分节 。示例:19,351,235.235767这里有几个常见的实现方法。1....

    将普通的数字转换为带千位分隔符格式的数字字符串是一个非常常见的问题,千位分隔符格式的规则是数字的整数部分每三位一组,以“,”分节。小数部分不分节 。

    示例:19,351,235.235767

    这里有几个常见的实现方法。

    1.方法一

    实现思路是将数字转换为字符数组,再循环整个数组, 每三位添加一个分隔逗号,最后再合并成字符串。因为分隔符在顺序上是从后往前添加的:比如 1234567添加后是1,234,567 而不是 123,456,7 ,所以方便起见可以先把数组倒序,添加完之后再倒序回来,就是正常的顺序了。要注意的是如果数字带小数的话,要把小数部分分开处理。

    function numFormat(num){

    num=num.toString().split("."); // 分隔小数点

    var arr=num[0].split("").reverse(); // 转换成字符数组并且倒序排列

    var res=[];

    for(var i=0,len=arr.length;i

    if(i%3===0&&i!==0){

    res.push(","); // 添加分隔符

    }

    res.push(arr[i]);

    }

    res.reverse(); // 再次倒序成为正确的顺序

    if(num[1]){ // 如果有小数的话添加小数部分

    res=res.join("").concat("."+num[1]);

    }else{

    res=res.join("");

    }

    return res;

    }

    var a=1234567894532;

    var b=673439.4542;

    console.log(numFormat(a)); // "1,234,567,894,532"

    console.log(numFormat(b)); // "673,439.4542"

    2.方法二

    语法: numObj.toLocaleString([locales [, options]])

    toLocaleString() 方法返回这个数字在特定语言环境下的表示字符串。

    var a=1234567894532;

    var b=673439.4542;

    console.log(a.toLocaleString()); // "1,234,567,894,532"

    console.log(b.toLocaleString()); // "673,439.454" (小数部分四舍五入了)

    要注意的是这个函数在没有指定区域的基本使用时,返回使用默认的语言环境和默认选项格式化的字符串,所以不同地区数字格式可能会有一定的差异。最好确保使用 locales 参数指定了使用的语言。

    注:我测试的环境下小数部分会根据四舍五入只留下三位。

    3. 方法三

    使用正则表达式和replace函数,相对前两种我更喜欢这种方法,虽然正则有点难以理解。

    replace 语法:str.replace(regexp|substr, newSubStr|function)

    其中第一个 RegExp 对象或者其字面量所匹配的内容会被第二个参数的返回值替换。

    function numFormat(num){

    var res=num.toString().replace(/\d+/, function(n){ // 先提取整数部分

    return n.replace(/(\d)(?=(\d{3})+$)/g,function($1){

    return $1+",";

    });

    })

    return res;

    }

    var a=1234567894532;

    var b=673439.4542;

    console.log(numFormat(a)); // "1,234,567,894,532"

    console.log(numFormat(b)); // "673,439.4542"

    展开全文
  • 千位分隔符

    千次阅读 2021-05-03 11:13:10
    所以人们在数字中,每隔三位数加进一个逗号,也就是千位分隔符,以便更加容易认出数值。 编程要求 在输入的数字中插入千分位分隔符并将其输出。 效果如下: 输入:1234567 输出:1,234,567 可以用字符串写,也可以...

    任务描述
    本关需要你完成在数字中插入千分位分隔符的小程序。

    相关知识
    什么是千分位分隔符呢?千位分隔符,其实就是数字中的逗号。依西方的习惯,人们在数字中加进一个符号,以免因数字位数太多而难以看出它的值。所以人们在数字中,每隔三位数加进一个逗号,也就是千位分隔符,以便更加容易认出数值。

    编程要求
    在输入的数字中插入千分位分隔符并将其输出。

    效果如下:
    输入:1234567
    输出:1,234,567

    可以用字符串写,也可以直接常规写
    第一种是常规写法:

    #include <stdio.h>
    int main()
    {
    	//获取参数方式 scanf
        //int x  =0;
        //int y = 0;
        //scanf("%d", &x);
    
        //结果输出使用prinf
        //printf("%d",x);
    
     	// 请在此添加你的代码
        /********** Begin *********/
        long i=1,n,p,q,t,m;
        scanf("%ld",&n);
        t = n;//copy一个副本
        while ((n / 10) != 0){
            n = n / 10;
            i++;
        }//到这 n不存在了
        i = i - 1;
        p = 1;
        for (q = 1; q <= i; q++){
            p = p * 10;
        }
        while (i >= 0){
            m = t / p;
            t = t - m*p;
            printf("%d", m);
            p = p / 10;
            if (i % 3 == 0 && i != 0){
                printf(",");
            }
            i = i - 1;
        }
        return 0;
    	/********** End **********/
    
    }
    
    

    下面是字符串写法:

    #include <stdio.h>
    int main()
    {
    	//获取参数方式 scanf
        //int x  =0;
        //int y = 0;
        //scanf("%d", &x);
    
        //结果输出使用prinf
        //printf("%d",x);
    
     	// 请在此添加你的代码
        /********** Begin *********/
        char str[20];
        int  len,i;
        gets(str);
        len=strlen(str)%3;
        for(i=0;str[i]!='\0';i++)
        {
            printf("%c",str[i]);
            if((i+1)%3==len && str[i+1]!='\0')
            printf("%c",44);
        }
        return 0;
    	/********** End **********/
    
    }
    
    
    展开全文
  • C++使用千位分隔符的代码

    千次阅读 2019-04-10 15:58:28
    下边代码内容是关于C++使用千位分隔符的代码。 #include #include using namespace std; int main() { int j , i = 0, k = 0 ,ix; cout << “To Exit press Ctrl+zn”; cout << "Enter decimal ...

    下边代码内容是关于C++使用千位分隔符的代码。

    #include
    #include

    using namespace std;

    int main()
    {
    int j , i = 0, k = 0 ,ix;
    cout << “To Exit press Ctrl+zn”;
    cout << "Enter decimal integer number: ";
    while(cin >> ix)
    {
    cout << endl;
    {
    cout << ‘-’;
    }
    int temp = ix;
    int p = 1;
    {
    temp /= 10;
    i++;
    }
    j = i % 3;
    p /= 10;

        {
            cout << char ((ix/p) +'0');
            ix %= p;
            p /= 10;
            i--;
            k++;
            j--;
            if ((k % 3 == 0 && i > 0)||(j == 0 && i > 2) )
            {
                cout <<",";
                k = 0;
            }
        }
        cout << endl << endl;
        cout << "To Exit press Ctrl+zn";
        cout << "Enter decimal integer number: ";
    }
    return 0;
    

    }
    To Exit press Ctrl+z
    Enter decimal integer number: -23487654

    -23,487,654

    Press any key to continue . . .

    展开全文
  • 本资源综合利用c语言的while循环, if条件判断, 函数递归调用等多种c语言知识,该算法采用传统的数位分离和字符数组,然后再用千分位分隔符进行插入。综合考虑,该算法对c语言初学者具有较大启发。
  • 千位分隔符-不是一般的前端

    千次阅读 2018-04-24 11:06:04
    请使用千位分隔符(逗号)表示web网页中的大数字这篇文章发布于 2017年09月16日,星期六,01:47,归类于 web综合。 阅读 11498 次, 今日 10 次by zhangxinxu from http://www.zhangxinxu.com/wordpress/?p=6418...
  • 将普通的数字转换为带千位分隔符格式的数字字符串是一个非常常见的问题,千位分隔符格式的规则是数字的整数部分每三位一组,以“,”分节。小数部分不分节。示例:19,351,235.235767这里有几个常见的实现方法。 1....
  • 添加千位分隔符

    2018-02-17 14:27:34
    给1234567890,这十个数字增加千位分隔符:Shell下的利器很多,一般最简单的两个方法,一个是Shell自带的printf命令,另一个是Perl的正则。一想到要格式化字符串,其实第一个就应该想到printf,几乎所有的编程语言...
  • 如上代码,显示为:123,456,789.00,倒是实现了千位分隔,只是又冒出了小数。 怎么去掉小数呢?用 N0: int m = 123456789; MessageBox.Show(m.ToString("N0")); 如果是不知道类型的,可以进行判断 ...
  • 今天遇到一个问题,用正则实现千位分隔符,例如:12345678.90 转换成 12,345,678.90。如果用 js 实现挺简单的,然而,正则实现优雅多了,但是如果对正则表达式不熟的话,还是有一定难度的。 现在对千位分隔符的...
  • 为了方便阅读,我们通常会在一串长数字中加入“千位分隔符”,即将 1234567890.11 转换成 1,234,567,890.11 ,这样的任务交给正则表达式来处理再方便不过了,本文就介绍了这个问题的解决方法。 语法: Code: (?<=...
  • 在字符串中插入千位分隔符

    千次阅读 2018-01-25 22:36:25
    我们知道,假设有1000000人民币(或其他货币),普遍来说,使用分隔符将它进行分割 。...在字符串中插入千位分割符,它的结果和对人民币进行分隔符分割的结果是一样的,思路也一致。 实现一 var s
  • 使用的MFC中的CString和格式化函数,如果要用C/C++中的字符串可自行转换。 /**************************************************************.../* 整型数字转换为带 千位分隔符(,) 的字符串 */ /*****************
  • string number_format ( float $number , int $decimals = 0 , string $dec_point = “.” , string $...如果只提供第一个参数,number的小数部分会被去掉 并且每个千位分隔符都是英文小写逗号"," 如果提供两个参...
  • 想要的效果:123456789.123 --> 123,456,789.123直接贴代码:function splitK(num) {var decimal = num.split('.')[1] || '';//小数部分var tempArr = [];var revNumArr = num.split('.')[0].split("").reverse()...
  • 为数字增加千位分隔符 C++实现注:需要C++11的支持。效果:1234567890->1,234,567,890使用locale库中的grouping函数实现。源代码:#include <iostream> #include #include <locale> //本地化库using namespace std...
  • 一行代码实现数字千位分隔符 var format = function (number) { return String(number).replace(/(\d)(?=(\d{3})+$)/g, '$1,'); }; 原理 难点在这个正则上。 /(\d)(?=(\d{3})+$)/ g ?= 术语叫“先行...
  • 这种函数虽然百度一大把,不过我还是准备自己用很简单的代码写一个。现在访客暴涨然后我发现了在线人数显示功能好多bug,修了一下午。这个函数也是为此功能而写的。function formatNum(num){if(typeof num !...
  • 千位分隔符显示

    2021-08-01 14:36:10
    有个项目需要在显示屏上,显示千位分隔符。就是1000需要显示成1,000 , 123456需要显示成 123,456。 所以在自己在网上查找了相关资料,整理了一段代码,希望对自己对其他人都有帮助。 void Function( int32_t n){ ...
  • 给数字添加千分位分隔符

    千次阅读 2020-03-29 11:46:25
    给数字添加千分位分隔符 本文转自:https://me.csdn.net/linhai_qq 法一:int i=0,j=0; void tranvers(char a[],long long n) { i++; if(i%4!=0) a[j]=n%10+‘0’; else {a[j]=’,’;a[++j]=n%10+‘0’;i++;} if(n/...
  • 在数值中加入千位分隔符

    千次阅读 2007-04-06 14:47:00
    procedure TInfoForm.Button2Click(Sender: TObject);var m:DOUBLE;begin m:=12345678; ShowMessage(Format(%*.*n,[0,0,m]));end;[ 0 , 0 , m] 保留位数 
  • c语言_输出千位上逗号隔开的数字

    千次阅读 2014-10-16 09:40:59
    此文总结于《你必须知道的495个C语言问题》12.12小节; #include /** *输出千位上面用逗号隔开的数字 * **/ char *commaprint(unsigned long n) { static int comma = '\0'; static char ...
  • 一个用递归实现的程序。 输入数据: abc-def-ghi-jklm-n-opqrst 输出数据: {“abc def”,“ghi jklm”,“n opqrst”}
  • 给你一个整数 n,请你每隔三位添加点(即 "." 符号)作为千位分隔符,并将结果以字符串格式返回。 示例 1: 输入:n = 987 输出:"987" 示例 2: 输入:n = 1234 输出:"1.234" 示例 3: 输入:n = 123456789 ...
  • 1.原生方法 new Intl.NumberFormat('zh-CN', { style: 'currency', currency... 2正则匹配 需要先格式化一下数字让其必须有小数点才行:new Number("12345678.123456").toFixed(2).replace(/\d+?(?=(\d{3})+?\.)/...
  • 千位逗号分隔符转换处理

    千次阅读 2010-10-20 13:04:00
    import java.text.NumberFormat; import java.util.Locale; public class test { public static void main(String args[]) { int amount = 2133333; String amount2 ; NumberFormat usFormat = ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 451
精华内容 180
关键字:

千位分隔符c语言

c语言 订阅