zoukankan      html  css  js  c++  java
  • js求取小数点后100位小数,判断是否可除尽

    首先,假设是一个除不尽的小数,这样理解的话,就很简单了。

    function getDecimal(a, b) {
      let list = [];
      let remainder = a % b; // 求取当前余数,比如20%3剩余数2
    
      while (list.length < 100) {
        let decimal = Math.floor(remainder * 10 / b); // 求取当前位小数
        list.push(decimal);
        remainder = remainder * 10 % b; // 求取下一位余数
      }
    
      return list.join('');
    }
    

    判断是否能除尽,其实只要判断余数中是否会出现重复数字即可,如果出现重复数字,说明陷入了某种循环里,并不能除尽。

    function isDivisible(a, b) {
      let list = [];
      let isDivide = [];
      let flag = true;
      let result = true;
      let remainder = a % b;
    
      while (flag) {
        let decimal = Math.floor(remainder * 10 / b);
        if (remainder === 0) {
          // 能除尽
          flag = false;
        } else if (isDivide.includes(remainder)) {
          // 不能除尽
          flag = false;
          result = false;
        } else {
          isDivide.push(remainder);
        }
        list.push(decimal);
        remainder = remainder * 10 % b;
      }
    
      // 返回结果和余数
      return [result, list];
    }
    
  • 相关阅读:
    python
    weui 问题
    Mac 问题
    ORM存储过程和实体类代码生成工具
    说说QQ空间SEO
    用户体验走嘴和走心的区别
    一切不以用户为中心的O2O 都是耍流氓
    10分钟制作自己的手机QQ
    一无所有其实没什么
    别人的鞋不一定合脚
  • 原文地址:https://www.cnblogs.com/itstring/p/12819631.html
Copyright © 2011-2022 走看看