gpt4 book ai didi

javascript - JQuery/JavaScript 增量数

转载 作者:行者123 更新时间:2023-11-29 16:29:43 24 4
gpt4 key购买 nike

我尝试每秒按给定值递增一个数字,并使用 JavaScript 或 JQuery 保留格式

我正在努力做到这一点。

假设我有一个这样的号码:

1412015

每秒可以增加的数字是可变的,它可以是 0.1 到 2 之间的任何值。

如果每秒必须增加的值是 0.54 来增加数字并具有以下输出,是否可能:

1,412,016
1,412,017
1,412,018

谢谢

伊芙

最佳答案

我不太确定我是否理解您的增量案例以及您想要展示的内容。然而,我决定提出一个格式化数字的解决方案。

我有两个版本的数字格式例程,一种用于解析数组,另一种使用正则表达式进行格式化。我承认它们不是最容易阅读的,但我很高兴想出这种方法。

我尝试用注释来描述这些行,以防您好奇

数组解析版本:

function formatNum(num) {
//Convert a formatted number to a normal number and split off any
//decimal places if they exist
var parts = String( num ).replace(/[^\d.]-/g,'').split('.');
//turn the string into a character array and reverse
var arr = parts[0].split('').reverse();

//initialize the return value
var str = '';

//As long as the array still has data to process (arr.length is
//anything but 0)
//Use a for loop so that it keeps count of the characters for me
for( var i = 0; arr.length; i++ ) {
//every 4th character that isn't a minus sign add a comma before
//we add the character
if( i && i%3 == 0 && arr[0] != '-' ) {
str = ',' + str ;
}

//add the character to the result
str = arr.shift() + str ;
}

//return the final result appending the previously split decimal place
//if necessary
return str + ( parts[1] ? '.'+parts[1] : '' );
}

正则表达式版本:

function formatNum(num) {
//Turn a formatted number into a normal number and separate the
//decimal places
var parts = String( num ).replace(/[^\d.]-/g,'').split('.');
//reverse the string
var str = parts[0].split('').reverse().join('');
//initialize the return value
var retVal = '';

//This gets complicated. As long as the previous result of the regular
//expression replace is NOT the same as the current replacement,
//keep replacing and adding commas.
while( retVal != (str = str.replace(/(\d{3})(\d{1,3})/,'$1,$2')) ) {
retVal = str;
}

//If there were decimal points return them back with the reversed string
if( parts[1] ) {
return retVal.split('').reverse().join('') + '.' + parts[1];
}

//return the reversed string
return retVal.split('').reverse().join('');
}

假设您想输出一个每秒递增 0.54 的格式化数字,您可以使用间隔来进行递增和输出。

仅包含 Firebug 的超短 Firefox 示例:

var num = 1412015;

setInterval(function(){
//Your 0.54 value... why? I don't know... but I'll run with it.
num += 0.54;
console.log( formatNum( num ) );
},1000);

您可以在这里看到这一切的实际情况:http://jsbin.com/opoze

关于javascript - JQuery/JavaScript 增量数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1207003/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com