gpt4 book ai didi

javascript - .toFixed(1) 不适用于 8.333333333333334 十进制数

转载 作者:行者123 更新时间:2023-12-03 03:05:53 24 4
gpt4 key购买 nike

我目前正在使用“入时”和“超时”编写工作时间计算,以显示带 1 点的小数的工作时间。就我而言,我使用 .toFixed(1) ,任何其他时间都运行良好,但是当时间为 09:10 且超时为 17:30 时..结果显示为 8.333333333333334。 .toFixed(1) 不适用于该十进制数。我该怎么做。

这是我的代码。

var time_in = $(elm).closest('tr').find('.time_in').text();
var time_out = $(elm).closest('tr').find('.time_out').text();
var working_time = (new Date("1970-1-1 " + time_out) - new Date("1970-1-1 " + time_in)) / 1000 / 60 / 60 ;
alert(working_time);
var total_work_hour = working_time.toFixed(1) - 1; //get fixed decimal number and minus 1 for lunch time.
var w_time = $(elm).closest('tr').find('.work_time');
w_time.text(total_work_hour);

最佳答案

当您从 8.333333333333334.toFixed(1) 的结果中减去 1 时(即使 Number#toFixed 返回一个字符串,JavaScript 也允许您这样做),结果不是 7.3,因为机器使用的是二进制浮点运算。例如:

0.1 + 0.2 // -> 0.30000000000000004

要解决这个问题,请执行所有算术,然后调用.toFixed(1):

var total_work_hour = (working_time - 1).toFixed(1);

关于javascript - .toFixed(1) 不适用于 8.333333333333334 十进制数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47171168/

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