当前位置:首页 > JavaScript

js实现tofixed

2026-02-01 05:44:47JavaScript

实现 toFixed 方法

JavaScript 中的 toFixed 方法用于将数字转换为字符串,保留指定的小数位数。以下是原生 toFixed 的实现原理及自定义实现方式。

原生 toFixed 的用法

let num = 123.456;
console.log(num.toFixed(2)); // 输出 "123.46"

自定义 toFixed 实现

以下是一个自定义的 toFixed 实现,解决原生方法在某些情况下的精度问题(如四舍五入不准确):

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

处理边界情况

如果需要更严格的实现(如处理负数、非数字输入等),可以扩展为:

function toFixed(number, precision) {
    if (typeof number !== 'number' || isNaN(number)) {
        throw new TypeError('Input must be a valid number');
    }

    const power = Math.pow(10, precision);
    const rounded = Math.round(number * power) / power;

    // 处理小数点后补零的情况
    const parts = rounded.toString().split('.');
    if (parts.length === 1) {
        parts.push('0'.repeat(precision));
    } else if (parts[1].length < precision) {
        parts[1] = parts[1] + '0'.repeat(precision - parts[1].length);
    }

    return parts.join('.');
}

示例测试

console.log(toFixed(123.456, 2)); // "123.46"
console.log(toFixed(123.4, 2));   // "123.40"
console.log(toFixed(-123.456, 2)); // "-123.46"

注意事项

  • 原生 toFixed 在某些浏览器中可能存在精度问题(如 IE),自定义实现可以避免这些问题。
  • 如果需要更复杂的四舍五入逻辑(如银行家舍入法),需进一步扩展实现。

js实现tofixed

标签: jstofixed
分享给朋友:

相关文章

js实现轮播

js实现轮播

实现基础轮播效果 使用HTML结构创建轮播容器和图片元素: <div class="carousel"> <div class="carousel-inner">…

js实现计算器

js实现计算器

实现基础计算器功能 使用JavaScript创建一个基础计算器需要处理数字输入、运算符逻辑和结果显示。以下是一个简单的实现示例: let currentInput = '0'; let previo…

js实现全屏

js实现全屏

实现全屏的基本方法 使用JavaScript实现全屏功能主要依赖Element.requestFullscreen()方法。现代浏览器均支持此API,但不同浏览器可能需要添加前缀。 // 触发全屏…

js 实现继承

js 实现继承

原型链继承 通过让子类的原型对象指向父类的实例来实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Par…

原生js实现轮播图

原生js实现轮播图

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

js实现乘

js实现乘

JavaScript 实现乘法运算 在 JavaScript 中实现乘法运算可以通过多种方式完成,包括基本运算符、函数封装以及高级算法(如大数乘法)。以下是几种常见方法: 使用基本乘法运算符 Jav…