Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 向字符串中添加小数点_Javascript_String_Decimal Point - Fatal编程技术网

Javascript 向字符串中添加小数点

Javascript 向字符串中添加小数点,javascript,string,decimal-point,Javascript,String,Decimal Point,我有一个脚本,需要一个很大的数字和计数。该脚本将数字转换为字符串,以便使用逗号对其进行格式化,但我还需要在最后两位数字之前添加一个小数位。我知道这行处理逗号: if ((i+1) % 3 == 0 && (amount.length-1) !== i)output = ',' + output; 我是否可以添加一行类似的代码来完成小数点的添加?是的,如果您总是希望小数点位于最后两个小数点之前: function numberIt(str) { //number befo

我有一个脚本,需要一个很大的数字和计数。该脚本将数字转换为字符串,以便使用逗号对其进行格式化,但我还需要在最后两位数字之前添加一个小数位。我知道这行处理逗号:

if ((i+1) % 3 == 0 && (amount.length-1) !== i)output = ',' + output;

我是否可以添加一行类似的代码来完成小数点的添加?

是的,如果您总是希望小数点位于最后两个小数点之前:

function numberIt(str) {
    //number before the decimal point
    num = str.substring(0,str.length-3);
    //number after the decimal point
    dec = str.substring(str.length-2,str.length-1)
    //connect both parts while comma-ing the first half
    output = commaFunc(num) + "." + dec;

    return output;
}
commaFunc()
是您描述的添加逗号的函数时

编辑

经过大量的努力,完整正确的代码:


您确定要小数点正好在最后两位之前吗?这样,
1234
将变成
12.34
而不是
1234.00
,我假设您想要第二个,在这种情况下,您应该使用JavaScript的内置方法。toFixed()

注意我没有编写format_number函数,我从下面的网站上获取了它,并对其进行了一些修改


你确定那条线行吗?我觉得不对…我觉得这就是解决办法。我已经将您的脚本插入到我的代码中:并重命名了添加逗号的函数,但我还不太擅长javascript,它对我不起作用。有指针吗?它在运行时不会输出…在您的示例中,我们如何将函数添加到输出中?理想情况下,我只想在逗号分隔行下方添加一行,将小数添加到最后两位之前的一位…好的,那么您要做的是将其分成两部分,如我在上面所示(num,dec)只在函数的开头加上num,在后面加上两个部分,后面加上分隔的句号。正如这里所做的:同样,当我点击run时,它不会输出数字。另外,我担心这不会产生我需要的输出。我还需要十进制数进行计数,因此我必须通过count函数运行整数。您必须原谅我,因为我不知道如何很好地编写js…我希望我的代码至少有点容易使用。。。
// example 1
var num = 10;
var output = num.toFixed(2); // output = 10.00

// example 2, if you want commas aswell
function format_number(nStr)
{
    nStr = nStr.toFixed(2);
    x = nStr.split('.');
    x1 = x[0];
    x2 = x.length > 1 ? '.' + x[1] : '';
    var rgx = /(\d+)(\d{3})/;
    while (rgx.test(x1)) {
        x1 = x1.replace(rgx, '$1' + ',' + '$2');
    }
    return x1 + x2;
}

var num = 1234;
var output = format_number(num); // output = 1,234.00