zoukankan      html  css  js  c++  java
  • 运算精度问题https://blog.csdn.net/smile_ping/article/details/80284969

    export default {
    add(num1, num2) {
    let r1;
    let r2;
    try { r1 = num1.toString().split('.')[1].length; } catch (e) { r1 = 0; }
    try { r2 = num2.toString().split('.')[1].length; } catch (e) { r2 = 0; }
    const m = 10 ** Math.max(r1, r2);
    const n = (r1 >= r2) ? r1 : r2;
    return ((num1 * m + num2 * m) / m).toFixed(n);
    },
    sub(num1, num2) {
    let r1;
    let r2;
    try { r1 = num1.toString().split('.')[1].length; } catch (e) { r1 = 0; }
    try { r2 = num2.toString().split('.')[1].length; } catch (e) { r2 = 0; }
    const n = (r1 >= r2) ? r1 : r2;
    const m = 10 ** Math.max(r1, r2);
    return ((num1 * m - num2 * m) / m).toFixed(n);
    },
    mul(num1, num2) {
    let m = 0;
    try { m += num1.toString().split('.')[1].length; } catch (e) { m += 0; }
    try { m += num2.toString().split('.')[1].length; } catch (e) { m += 0; }
    return (Number(num1.toString().replace('.', '')) * Number(num2.toString().replace('.', ''))) / (10 ** m);
    },
    div(arg1, arg2) {
    let t1;
    let t2;
    try { t1 = arg1.toString().split('.')[1].length; } catch (e) { t1 = 0; }
    try { t2 = arg2.toString().split('.')[1].length; } catch (e) { t2 = 0; }
    const r1 = Number(arg1.toString().replace('.', ''));
    const r2 = Number(arg2.toString().replace('.', ''));
    return (r1 / r2) * (10 ** (t2 - t1));
    },
    };
    你对生活笑,生活不会对你哭。
  • 相关阅读:
    [SDOI2015]星际战争
    [SDOI2016]生成魔咒
    hdu3311
    [ZJOI2011]最小割
    P3331 [ZJOI2011]礼物(GIFT)
    [ZJOI2010]贪吃的老鼠
    状压dp-----三进制
    noip2016 天天爱跑步
    概率期望dp
    poj2186
  • 原文地址:https://www.cnblogs.com/adanxiaobo/p/9619200.html
Copyright © 2011-2022 走看看