fix: 修复工时显示浮点数精度问题

This commit is contained in:
Your Name 2026-01-06 21:04:19 +08:00
parent d66b75beea
commit 3f989e49db

View File

@ -1180,14 +1180,21 @@ const formatWorkHours = (hours: number): string => {
const WORK_HOURS_PER_DAY = 8
const days = Math.floor(hours / WORK_HOURS_PER_DAY)
const remainingHours = hours % WORK_HOURS_PER_DAY
// 处理浮点数精度问题,保留两位小数
let remainingHours = Math.round((hours % WORK_HOURS_PER_DAY) * 100) / 100
// 格式化小时显示
const formatHours = (h: number): string => {
if (Number.isInteger(h)) return `${h}小时`
return `${h.toFixed(2).replace(/\.?0+$/, '')}小时`
}
if (days === 0) {
return `${remainingHours}小时`
return formatHours(remainingHours)
} else if (remainingHours === 0) {
return `${days}天`
} else {
return `${days}天${remainingHours}小时`
return `${days}天${formatHours(remainingHours)}`
}
}