当前位置: 首页 > news >正文

在线销售型网站产品优化大师优化项目有

在线销售型网站产品,优化大师优化项目有,做网站没有学历的人会吗,可以写代码的网站有哪些问题吗方法一: 保留字符串类型,传给后端 方法二: 如果涉及到计算,用以下方法 // 核心思想 在计算前,将数字乘以相同倍数,让他没有小数位,然后再进行计算,然后再除以相同的倍数&#xff0…

方法一:
保留字符串类型,传给后端

方法二:
如果涉及到计算,用以下方法

// 核心思想 在计算前,将数字乘以相同倍数,让他没有小数位,然后再进行计算,然后再除以相同的倍数,恢复原来的小数位
function add(a, b) {const precisionA = getPrecisionA(a)const precisionB = getPrecisionB(b)var multiplier = Math.pow(10, Math.max(precisionA, precisionB))return (a * multiplier + b * multiplier) / multiplier
}function getPrecisionA() {if (num.toString().indexOf('e') !== -1) {var precision = num.toString().split('e-')[1]return parseInt(precision, 10)}var decimalPart = num.toString().split('.')[1]return decimalPart ? decimalPart.length : 0
}

以下是完整函数:

/*** 把递归操作扁平迭代化* @param {number[]} arr 要操作的数字数组* @param {function} operation 迭代操作* @private*/
function iteratorOperation(arr,operation){
const [num1,num2,...others]=arr;
let res=operation(num1,num2)
other.forEach((num)=>{
res=operation(res,num)
})
return res
}/*** 返回小数部分的长度* @private* @param {*number} num Input number*/function digitLength(num){// 指数部分通常是用字母 "e" 或 "E" 后跟一个整数表示const eSplit=num.toString().spilt(/[eE]/);const len=(eSplit[0].split('.')[1] || '').length - +(eSplit[1] || 0);return len>0?len:0;
}/*** 把小数转成整数,如果是小数则放大成整数* @private* @param {*number} num 输入数*/
function float2Fixed(num){
if(num.toString().indexOf('e')===-1){
return Number(num.toString().replace('.',''))
}
const dLen = digitLength(num);return dLen > 0 ? strip(Number(num) * Math.pow(10, dLen)) : Number(num);
}/*** 把错误的数据转正* @private* @example strip(0.09999999999999998)=0.1*/function strip(num,precision=15){// toPrecision将数字转换为具有指定有效数字位数的字符串表示形式// parseFloat 将字符串转为浮点数return +parseFloat(Number(num).toPrecision(precision));}/*** 高精度乘法*/function times(...nums){if (nums.length > 2) {return iteratorOperation(nums, times);}const [num1, num2] = nums;const num1Changed = float2Fixed(num1);const num2Changed = float2Fixed(num2);const baseNum = digitLength(num1) + digitLength(num2);const leftValue=num1Changed * num2Changed// 并返回底数的指数次幂return  leftValue/ Math.pow(10, baseNum);}/*** 高精度加法*/function plus(...nums){
if(nums.length>2){
return iteratorOperation(nums, plus)
}
const [num1,num2]=nums
// 取最大的小数位
// Math.pow 函数计算以 10 为底、指数为两个数字小数部分长度的最大值的幂次方
const baseNum=Math.pow(10,Math.max(digitLength(num1), digitLength(num2)))
// 把小数转为整数再计算return (times(num1, baseNum) + times(num2, baseNum)) / baseNum;
}/*** 高精度减法* @export*/function minus(...nums) {if (nums.length > 2) {return iteratorOperation(nums, minus);}const [num1, num2] = nums;const baseNum = Math.pow(10, Math.max(digitLength(num1), digitLength(num2)));return (times(num1, baseNum) - times(num2, baseNum)) / baseNum;
}/*** 高精度除法* @export*/
function divide(...nums) {if (nums.length > 2) {return iteratorOperation(nums, divide);}const [num1, num2] = nums;const num1Changed = float2Fixed(num1);const num2Changed = float2Fixed(num2);checkBoundary(num1Changed);checkBoundary(num2Changed);// 重要,这里必须用strip进行修正return times(num1Changed / num2Changed, strip(Math.pow(10, digitLength(num2) - digitLength(num1))));
}
http://www.yayakq.cn/news/163961/

相关文章:

  • 常德外贸网站优化推广深圳网页建设公司
  • 如何做学校的网站北京数字智慧展厅设计咨询
  • 积分交易所网站开发邢台网站推广多少钱
  • 网站建站图片易销云建站公司
  • 互联网科技公司网站建设环境工程技术中心网站
  • 免费的app源码网郑州seo哪家专业
  • 韩国在中国做美食的视频网站软件开发网络技术开发公司
  • 织梦教育咨询企业网站模板厦门谷歌推广
  • 网站制作需要哪些软件有哪些开源html5 网站模板
  • 关于网站建设的讲话小程序开发文档pdf
  • 门户网站建设 简报对外宣传网站建设方案
  • 做多肽的都有哪些网站网页设计个人网站
  • 爱站网爱情电影网龙岩网站建设全包
  • 云浮新兴县做网站企业手机网站案例
  • 浏览器直接进入网站的注意事项彩票网站如何做
  • 做网站 指导一个域名下两个wordpress
  • 做娱乐网站少10个页面高端房产网站建设
  • c#+网站开发实例wordpress 调出编辑器
  • 做网站下载哪个软件网站开发费怎么入账
  • 西部数码创建子网站东莞圆心科技网站开发
  • 如何用虚拟主机做网站阿里云 做网站 百度开放云
  • 内网网站开发报价介绍网站开发的意义
  • 网站建设公司专业网站研发开发药品推荐网站模板
  • 怎么做网站关键词优化使用jquery的网站
  • 网站架设的结构代理公司注册机构
  • wordpress在本地运行很慢优化设计电子版在哪找
  • 网站的栏目结构简图怎么做wordpress调用ip查询
  • 信誉好的大连网站建设中国住建部
  • 网站开发付款方式和比例手机网站建设品牌
  • ps做图下载网站做企业网站费用