精华内容
下载资源
问答
  • 千位分隔符

    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 **********/
    
    }
    
    
    展开全文
  • 通过添加千位分隔符将数字转换为更易读的格式的函数。 这个非常简单的函数允许您选择要返回的千位分隔符和小数位数。 任何字符(包括空格)都可以作为分隔符。 例如 千分之一(1234.567,',',1) 返回字符串'1,...
  • 将普通的数字转换为带千位分隔符格式的数字字符串是一个非常常见的问题,千位分隔符格式的规则是数字的整数部分每三位一组,以“,”分节。小数部分不分节 。示例: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"

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

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

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

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

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

    将函数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));

    小白敬上!

    展开全文
  • I know that theoretically digits in large integers can be grouped by thousands for better readability:Python 3.5.2 (default, Nov 17 2016, 17:05:23)[GCC 5.4.0 20160609] on linuxType "help", "copyright...

    I know that theoretically digits in large integers can be grouped by thousands for better readability:

    Python 3.5.2 (default, Nov 17 2016, 17:05:23)

    [GCC 5.4.0 20160609] on linux

    Type "help", "copyright", "credits" or "license" for more information.

    >>> import locale

    >>> locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')

    'en_US.UTF-8'

    >>> locale.format('%d', 1234567890, grouping=True)

    '1,234,567,890'

    >>> "{:n}".format(1234567890)

    '1,234,567,890'

    However, surprisingly, this won’t work for every locale:

    >>> locale.setlocale(locale.LC_ALL, 'pl_PL.UTF-8')

    'pl_PL.UTF-8'

    >>> locale.format('%d', 1234567890, grouping=True)

    '1234567890'

    >>> "{:n}".format(1234567890)

    '1234567890'

    Why are numbers not formatted? I find this strange. I would expect something like 1 234 567 890 being printed.

    Per Format Specification Mini-Language, we can explicitly enforce two possible separators: a comma , and an underscore _. Sadly, a comma is inappropriate for Polish since it is used as a decimal point separator there, and a number like 1_234_567_890 would look oddly for most people.

    Can we somehow enforce a non-breaking space being used as a thousands separator?

    解决方案

    The pl_PL locale thousands separator seems to be empty. I don't know if this accurately represents common usage in Poland, but Python is correctly formatting your number according to the rules of the pl_PL locale. This may be a bug in the locale files.

    As far as I am aware, there is no option to manually specify the thousands separator and decimal mark characters.

    展开全文
  • 千位分隔符,其实就是数字中的逗号。依西方的习惯,人们在数字中加进一个符号,以免因数字位数太多而难以看出它的值。所以人们在数字中,每隔三位数加进一个逗号,也就是千位分隔符,以便更加容易认出数值。 例如 1,...
  • js代码-js实现千位分隔符
  • C#千位分隔符

    2013-07-25 20:51:49
    C#千位分隔符 并且去掉了点 希望对大家有帮助
  • js代码-JS给数字加千位分隔符
  • 千位分隔符实现

    2019-03-08 13:29:26
    千位分隔符实现  千位分隔符实现很常见,例如-1,233,552,214,233.214; function getType(num) { return Object.prototype.toString.call(num); } function thoundBitSeparator(num) { 'use strict'; let type ...
  • 在项目中做货币转换的时候经常需要可以实现自动格式化输入的数字,自动千位分隔符,在网上也看到一些其他网友的实现的代码,感觉都不是太满意,于是自己研究了下,分享给大家。
  • js 千位分隔符 千位分隔符,其实就是数字中的逗号。依西方的习惯,人们在数字中加进一个符号,以免因数字位数太多而难以看出它的值。所以人们在数字中,每隔三位数加进一个逗号,也就是千位分隔符,以便更加容易...
  • 二、大数值千位分隔符(逗号)的作用 在西方,在表示很大的数字的时候,会以每3位为一个间隔进行分隔,分隔的符号就是英文逗号,由于中文里面,第3位是“千”,因此,数字中的这个“逗号”也被称为“千位分隔符”。...
  • 经常在工作中遇到将一长串数字格式为以千位分隔符分隔的方式显示,下面提供三种实现方式。
  • iOS 金额添加千位分隔符

    千次阅读 2017-03-13 16:42:18
    1、iOS 金额添加千位分隔符 例如:将数字“1234567”格式化为“1,234,567”。 方法一:使用 NSNumberFormatter //NSNumber格式化转换为NSString添加千位分隔符 NSNumberFormatter* numberFormatter = [...
  • 对输入数字调用 num2str(使用可选的指定格式)并添加逗号作为千位分隔符
  • Java 数字千位分隔符

    万次阅读 2017-06-07 17:42:37
    java中数字的千位分隔符

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,463
精华内容 2,585
关键字:

千位分隔符