当前位置:首页 > JavaScript

js实现tofixed

2026-04-05 22:11:32JavaScript

JavaScript 实现 toFixed

JavaScript 中的 toFixed() 方法用于将数字转换为字符串,保留指定的小数位数。以下是实现 toFixed 功能的几种方法。

原生 toFixed 方法

直接使用 JavaScript 提供的原生方法:

let num = 123.456789;
let fixedNum = num.toFixed(2); // 返回 "123.46"

自定义实现 toFixed

如果需要手动实现类似功能,可以通过以下方式:

function toFixed(number, precision) {
    const factor = Math.pow(10, precision);
    return Math.round(number * factor) / factor;
}

let num = 123.456789;
let fixedNum = toFixed(num, 2); // 返回 123.46

处理四舍五入问题

原生 toFixed 可能存在四舍五入不准确的问题,可以通过以下方式优化:

function accurateToFixed(number, precision) {
    const str = number.toString();
    const decimalIndex = str.indexOf('.');
    if (decimalIndex === -1) return number.toFixed(precision);

    const decimalPart = str.slice(decimalIndex + 1);
    if (decimalPart.length <= precision) return number.toFixed(precision);

    const factor = Math.pow(10, precision);
    const rounded = Math.round(parseFloat((number * factor).toPrecision(15))) / factor;
    return rounded.toFixed(precision);
}

let num = 1.005;
let fixedNum = accurateToFixed(num, 2); // 返回 "1.01"

处理边界情况

处理负数和大数字的情况:

function safeToFixed(number, precision) {
    if (isNaN(number) || !isFinite(number)) return number.toString();
    const isNegative = number < 0;
    const absoluteValue = Math.abs(number);
    const factor = Math.pow(10, precision);
    const rounded = Math.round(absoluteValue * factor) / factor;
    return (isNegative ? '-' : '') + rounded.toFixed(precision);
}

let num = -123.456789;
let fixedNum = safeToFixed(num, 2); // 返回 "-123.46"

格式化输出

如果需要格式化输出为特定格式(如千分位分隔符):

js实现tofixed

function formatWithCommas(number, precision) {
    const fixed = number.toFixed(precision);
    const parts = fixed.split('.');
    parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ',');
    return parts.join('.');
}

let num = 1234567.891;
let formattedNum = formatWithCommas(num, 2); // 返回 "1,234,567.89"

标签: jstofixed
分享给朋友:

相关文章

js实现拷贝

js实现拷贝

实现文本拷贝 使用 document.execCommand 方法(已废弃但兼容性较好): function copyText(text) { const textarea = document…

js jquery

js jquery

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够…

js实现百叶窗

js实现百叶窗

使用CSS和JavaScript实现百叶窗效果 通过CSS动画和JavaScript事件监听可以实现百叶窗效果。核心思路是将内容区域分割为多个条状元素,通过控制它们的展开/折叠状态来模拟百叶窗。 &…

js实现吸色

js实现吸色

使用Canvas实现吸色功能 通过Canvas的getImageData方法获取像素颜色数据。创建一个Canvas元素,将目标图像绘制到Canvas上,通过鼠标事件获取坐标对应的颜色值。 const…

js实现视口

js实现视口

js实现视口检测的方法 使用JavaScript检测元素是否进入视口(viewport)可以通过Intersection Observer API或手动计算元素位置实现。以下是两种常见方法: Int…

js实现文字滚动

js实现文字滚动

实现文字滚动的几种方法 使用CSS动画实现滚动 通过CSS的@keyframes和transform属性可以实现平滑的文字滚动效果。 <style> .scroll-text { w…