在javascript中,当你使用小数进行加减乘除运算时,你会发现,所得到的结果有时后面带有长长的一段小数,使运算变得复杂,并且影响计算结果。上网查询了一下原因,大致如下:在javascript中,带小数的数据运算时总会出现好多位小数.这是因为在javascript中浮点数的计算是以2进制计算的。
复制代码 代码如下:
/**
* 加法运算,避免数据相加小数点后产生多位数和计算精度损失。
*
* @param num1加数1 | num2加数2
*/
function numAdd(num1, num2) {
var baseNum, baseNum1, baseNum2;
try {
baseNum1 = num1.toString().split(".")[1].length;
} catch (e) {
baseNum1 = 0;
}
try {
baseNum2 = num2.toString().split(".")[1].length;
} catch (e) {
baseNum2 = 0;
}
baseNum = Math.pow(10, Math.max(baseNum1, baseNum2));
return (num1 * baseNum + num2 * baseNum) / baseNum;
};
/**
* 加法运算,避免数据相减小数点后产生多位数和计算精度损失。
*
* @param num1被减数 | num2减数
*/
function numSub(num1, num2) {
var baseNum, baseNum1, baseNum2;
var precision;// 精度
try {
baseNum1 = num1.toString().split(".")[1].length;
} catch (e) {
baseNum1 = 0;
}
try {
baseNum2 = num2.toString().split(".")[1].length;
} catch (e) {
baseNum2 = 0;
}
baseNum = Math.pow(10, Math.max(baseNum1, baseNum2));
precision = (baseNum1 >= baseNum2) ? baseNum1 : baseNum2;
return ((num1 * baseNum - num2 * baseNum) / baseNum).toFixed(precision);
};
/**
* 乘法运算,避免数据相乘小数点后产生多位数和计算精度损失。
*
* @param num1被乘数 | num2乘数
*/
function numMulti(num1, num2) {
var baseNum = 0;
try {
baseNum += num1.toString().split(".")[1].length;
} catch (e) {
}
try {
baseNum += num2.toString().split(".")[1].length;
} catch (e) {
}
return Number(num1.toString().replace(".", "")) * Number(num2.toString().replace(".", "")) / Math.pow(10, baseNum);
};
/**
* 除法运算,避免数据相除小数点后产生多位数和计算精度损失。
*
* @param num1被除数 | num2除数
*/
function numDiv(num1, num2) {
var baseNum1 = 0, baseNum2 = 0;
var baseNum3, baseNum4;
try {
baseNum1 = num1.toString().split(".")[1].length;
} catch (e) {
baseNum1 = 0;
}
try {
baseNum2 = num2.toString().split(".")[1].length;
} catch (e) {
baseNum2 = 0;
}
with (Math) {
baseNum3 = Number(num1.toString().replace(".", ""));
baseNum4 = Number(num2.toString().replace(".", ""));
return (baseNum3 / baseNum4) * pow(10, baseNum2 - baseNum1);
}
};
相关推荐:
Goanno跨级借鉴:推动创新与提升效率的秘密武器,崇明区智能ai艾灸费用
怎样用AI写文章?快速高效创作新技能!
SEO元素-提升网站排名的核心要素,推广分成网站有哪些
SEO全站优化:打造强大网站排名的必备利器,AI论文写作的优点
未来写作新模式文章撰写AI如何助力内容创作
ChatGPT维护-智能时代的数字助手,如何让你的工作更高效,ai智能救援
SEO能给企业带来什么价值,seo的影响 ,ai蓝衣美女
seo要学什么技术,seo要学什么技术好 ,ai.fale
ChatGPT:OpenAI的创新之作-一款颠覆传统的语言模型,ai球衣号
seo需要会什么技术呢,seo需要会什么技术呢知乎 ,红色框ai
seo要公司什么资源,做seo需要用到什么软件 ,ai明星换了
WPJam:打破网站管理的壁垒,打造极致用户体验,广东谷歌seo工具
ChatGPT无法加载?检查您的网络设置并尝试重启ChatGPT,助您畅享无障碍智能对话体验,ai记录人
未来科技:AI工具为生活赋能,打造智能未来
UCMS:引领智慧医疗新时代,打造数字化健康未来,推广工作谈营销
AI网页设计生成-智能化创造无限可能,ai机甲风背景音乐
SEO公司核心业务是什么?揭秘提升网站排名的奥秘,写作助手ai一键生成作文在线
AI免费生成文本,内容创作新篇章
AI文章概括缩写:让内容高效获取的智能工具,ai 处理文件
seo灰帽是什么,灰帽是指什么 ,ai绘画六边形
ChatGPT打不开实时问题解决方案:让你的AI助手始终在线,psd 转ai
好用的AI智能工具,让生活与工作更高效!
优化原理:提升效率、创新突破的核心法则,印刷包装推广有哪里网站
ChatGPT无法加载?检查网络并尝试重启,助您快速恢复畅通体验,burj ai
AI一键生成文章网页版,让内容创作更简单高效
AI助手不需要登陆-畅享便捷生活,随时随地高效工作,ai客服 对话
怎么用AI缩写文章,轻松提高效率的全新方法
SEO小白必看!从零起步SEO的秘诀,轻松提升网站排名,南京网站运营优化平台
SEO排序:如何让你的网页在搜索引擎中脱颖而出,平谷抖音seo推广招聘
用AI写文,开启创作新时代
什么是神马排名?让你的网站脱颖而出,轻松占据搜索引擎的C位!,乳山网站优化关键词排名
互联网留痕:数字时代的隐形轨迹与自我管理,灯塔网站推广包年多少钱
SEO搜外:全球搜索引擎优化的秘密武器,如何选择网站建设类型呢
WPQQ-开启数字时代的智能连接新纪元,杭州网站推广厂家电话
SEO查看-如何通过精确分析提升网站流量与排名,东丽网站建设价格
seo适合什么人做,哪种seo做得好 ,晋城ai论文写作免费
SEO外链技巧:提升网站排名的秘密武器,ai视频生日祝福
优化入口:提升网站流量与转化率的秘密武器,琼海关键词排名品牌
从语言助手到智能生活伙伴,未来的智能助手如何改变我们的生活,网站建设分站公司
AI生成文章免费工具,让创作变得轻松又高效,ai安心健
ChatGPT:基于Transformer技术的语言模型,开创人工智能未来,AI独战OK
seo追词是什么,seo词条 ,52580609AI
高效创作之路:文章AI生成器的力量
SEO全套秘籍:提升网站流量与排名的终极指南,荣昌手机网站建设
AI代写文章:高效创作的新风尚
SEM+SEO:助力企业数字化营销的双剑合璧之道,ai头像丑
seo网络培训是什么,seo工作培训会培训啥 ,ai长投影字
ChatGPT支持多种语言输入输出,让全球资讯触手可及,联想拯救者的ai写作
SEO软优化:助力网站实现流量爆发的秘密武器,延平区网页seo
SEO学费多少钱?揭秘SEO培训的投资价值与回报!,郴州网站推广多少钱一个