Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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_Loops_Numbers_Settimeout_Floating - Fatal编程技术网

Javascript |浮点数+;区间环路

Javascript |浮点数+;区间环路,javascript,loops,numbers,settimeout,floating,Javascript,Loops,Numbers,Settimeout,Floating,我有一个浮点数(例如):0.004178174922295 如何让递减函数在特定的时间内(例如1秒)从这个数字计算到0? 谢谢 预期值: 0.004178174922295 0.004178174922294 0.004178174922293 ... 0 正如raina77ow和其他人在评论中指出的那样 一个解决办法是将无穷小变成大整数,处理它们,最后再将它们转换回来 这就是你要找的吗?请让我知道 编辑 你可以要求在一定的时间内完成倒计时,倒计时确实适用于合理的数字,但在Javascript

我有一个浮点数(例如):0.004178174922295

如何让递减函数在特定的时间内(例如1秒)从这个数字计算到0? 谢谢

预期值:

0.004178174922295
0.004178174922294
0.004178174922293
...
0

正如raina77ow和其他人在评论中指出的那样

一个解决办法是将无穷小变成大整数,处理它们,最后再将它们转换回来

这就是你要找的吗?请让我知道

编辑 你可以要求在一定的时间内完成倒计时,倒计时确实适用于合理的数字,但在Javascript中,你不能调用比这更短的时间间隔。使用您给出的示例数字,
0.004178174922295
,就像从
4178174922295
倒计时到零一样。这将需要大约1325年的10毫秒间隔(如果我的数学是正确的,无论哪种方式,我都希望你能通过一个更短的时间间隔)

函数无穷小倒计时(num,秒){
//我创建了一个将十进制数转换为整数的系数
//将是一个大数字,以“1”开头,后跟一堆零
设coefString='1';

对于(i=0;iAsraina77ow和评论中指出的其他人

一个解决办法是将无穷小变成大整数,处理它们,最后再将它们转换回来

这就是你要找的吗?请告诉我

编辑 你可以要求在一定的时间内完成倒计时,倒计时的数字是合理的,但在Javascript中,你不能调用比这更短的时间间隔。以你给出的示例数字为例,
0.004178174922295
,这就像是从
4178174922295
倒计时到零。这需要在10英里内大约1325年第二次间隔(如果我的数学是正确的,无论哪种方式,我都希望你能通过一个更短的间隔)

函数无穷小倒计时(num,秒){
//我创建了一个将十进制数转换为整数的系数
//将是一个大数字,以“1”开头,后跟一堆零
设coefString='1';
对于(设i=0;ii如果可以将输入数字表示为
number
type(因此没有很多小数),则可以使用普通数字减法。 在这里,重要的是得到要减去的单位。可以使用
Math.pow
得到单位

因此,需要对计数的数字进行四舍五入,这可以使用
toFixed
函数来完成

let输入=0.004178174922295;
const decimalCount=input.toString().length-2;
常数单位=数学功率(10,-1*小数);
控制台日志(输入);
const loopInterval=setInterval(()=>{
输入=数字((输入-单位).toFixed(小数点计数));
控制台日志(输入);
如果(输入==0){
clearInterval(loopInterval);
}
},1000);
如果可以将输入的数字表示为
number
type(因此没有太多的小数),则可以使用普通的数字减法。 在这里,重要的是得到要减去的单位。可以使用
Math.pow
得到单位

因此,需要对计数的数字进行四舍五入,这可以使用
toFixed
函数来完成

let输入=0.004178174922295;
const decimalCount=input.toString().length-2;
常数单位=数学功率(10,-1*小数);
控制台日志(输入);
const loopInterval=setInterval(()=>{
输入=数字((输入-单位).toFixed(小数点计数));
控制台日志(输入);
如果(输入==0){
clearInterval(loopInterval);
}


}, 1000)
你打算用这个数字做些什么?还是仅仅输出它?记住,s/owls/float并不是它们看起来的样子…owl-你是什么意思?忽略这一点,这是双峰引用。另外,这个数字的来源是什么?用户输入,服务器端数据,一些计算结果?我在问,因为根据这一点,它是最好用整数来代替,使用所有那些
0.000…
来显示那个数字。它只是一个数字(常量).你打算用这个数字做些什么吗?或者只是输出它?记住,s/owl/float并不是它们看起来的样子…owl-你是什么意思?忽略这一点,这是双峰引用。另外,这个数字的来源是什么?用户输入,服务器端数据,一些计算结果?我在问,因为这取决于它可能是什么更好的办法是使用整数,使用所有那些
0.000…
来显示那个数字。它只是一个数字(常量)。谢谢!有可能在特定的时间内完成所有计算吗?例如,我想在特定的时间内从最大值迭代到零。目前它每1秒减去1个值。从此(),您可以设置的最小毫秒数为4ms。因此它不适用于只能描述的字符串这样的长数字。谢谢!是否可以在特定的时间内完成所有计算?例如,我希望在特定的时间内从最大值迭代到零。目前,它每1秒减去1个值。从此(),您可以设置的最小毫秒数为4ms。因此它不适用于只能描述的字符串这样的长数字。谢谢!有可能在特定的时间内完成所有计算吗?例如,我想在特定的时间内从最大值迭代到零。目前它每1秒减去1个值。谢谢…几乎可以1325年,间隔10毫秒…我做了另一次编辑,这可能对你有用。谢谢。如果你觉得这个问题有用,你介意选择被接受的问题吗?是的。谢谢!被接受。谢谢!有可能在特定的时间内完成所有计算吗?例如,我想从最大值开始迭代