当前位置:首页 > 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
分享给朋友:

相关文章

jquery.js

jquery.js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,用于简化 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它的设计宗旨是“Write Less, Do Mor…

js实现日历

js实现日历

实现日历的基本思路 使用JavaScript实现日历的核心是动态生成日期表格,并处理月份切换逻辑。需要计算当前月的天数、起始星期几,并动态渲染到页面上。 获取当前日期信息 通过Date对象获取当前年…

原生js实现轮播图

原生js实现轮播图

基本结构搭建 HTML部分需要包含轮播图容器、图片列表及导航按钮。结构示例如下: <div class="slider-container"> <div class="slid…

js实现复制到剪贴板

js实现复制到剪贴板

使用document.execCommand方法(传统方式,已废弃但部分浏览器仍支持) 该方法适用于旧版浏览器,但已被标记为废弃。执行前需确保文本已被选中: function copyToClipb…

js实现驼峰

js实现驼峰

实现驼峰命名的几种方法 使用正则表达式和字符串替换 通过正则表达式匹配字符串中的特定模式(如下划线或短横线),并将其后的字母转换为大写,同时移除分隔符。 function toCamelCase(s…

js实现图

js实现图

JavaScript 实现图的常用方法 在 JavaScript 中,图(Graph)可以通过多种方式实现,常见的包括邻接表(Adjacency List)和邻接矩阵(Adjacency Matrix…