【问题标题】:Division of a float/integer by a integer in jquery [duplicate]在jquery中将浮点数/整数除以整数[重复]
【发布时间】:2013-06-17 19:13:09
【问题描述】:

我将一个数字(可能是 XX.XX 的数量格式)除以一个整数。

但是当我执行 6.6 / 6 或 3.3/3 时,它会给出 1.099999...,而不是 1.1。

我正在做的是,我将金额平均分配给人数,如果存在任何剩余金额,我会将额外的金额添加到其中一个人。

可能是这种情况,104/6会被划分为17.85、17.83、17.83、17.83、17.83、17.83[可能不准确,只是为了说明]。

JS Bin 链接---->http://jsbin.com/amileg/1/edit

请帮助我获得正确的计算逻辑。

谢谢!!

【问题讨论】:

  • 这对于 IEEE 浮点是很自然的。这个问题已经被问过很多次了;我会尽量找一个好的推荐给你。
  • “解决方案”是选择一个合适数量的decimal places to round to,然后这样做(一次,在所有你的浮点运算结束时)。跨度>

标签: jquery html decimal division integer-division


【解决方案1】:

那是浮点运算,那些是舍入误差。您可以阅读this 了解更多信息。

将无限多个实数压缩为有限位数需要近似表示。尽管整数有无限多,但在大多数程序中,整数计算的结果可以存储在 32 位中。相反,给定任何固定位数,大多数实数计算将产生无法使用那么多位精确表示的量。因此,浮点计算的结果必须经常四舍五入以适应其有限表示。这种舍入误差是浮点计算的特征。

JavaScript 中的所有数字都以二进制形式表示为IEEE-754 Doubles,它提供了大约 14 或 15 个有效数字的精度。它们并不总是准确地表示实数,包括分数。

【讨论】:

    【解决方案2】:

    你可以使用.toFixed()

    var res = (vall / tot).toFixed(2);
    //input `6.6/6`: , output : `1.10`
    

    演示---->http://jsbin.com/amileg/4/edit

    【讨论】:

    • 是的,但我不想四舍五入。请看我所说的我正在做的计算。
    猜你喜欢
    • 1970-01-01
    • 2017-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    相关资源
    最近更新 更多