我是靠谱客的博主 忧郁发夹,最近开发中收集的这篇文章主要介绍Vue JS 的乘法精确计算问题,出现很多位小数的问题与原因,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

出现问题的原因

计算机把小数转换成二级制,会出现无限循环的情况。再把无限循环的二级制转化成十进制的时候,变成了一个无限循环的数字。在处理双精度浮点数的小数部分最多支持 52 位,所以转换成十进制之后,就出现了很多位小数的存在。

解决办法


Vue.prototype.NumberMul = function(arg1, arg2) {
    var m = 0;
    var s1 = arg1.toString();
    var s2 = arg2.toString();
    try {
        m += s1.split(".")[1].length;
    } catch (e) {}
    try {
        m += s2.split(".")[1].length;
    } catch (e) {}
 
    return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m);

经过这样处理就没有了很多位数的小数。

原文链接    https://www.cnblogs.com/bushui/p/12150947.html 

 

最后

以上就是忧郁发夹为你收集整理的Vue JS 的乘法精确计算问题,出现很多位小数的问题与原因的全部内容,希望文章能够帮你解决Vue JS 的乘法精确计算问题,出现很多位小数的问题与原因所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部