【问题标题】:Convert a Decimal number to float and truncate it将十进制数转换为浮点数并截断它
【发布时间】:2012-04-30 19:35:24
【问题描述】:

我有一个号码

例如:

8183

我需要将其转换为浮点数-

例如 8183

(8183).toFixed(2);

我会回来的

8183.00

但我需要进一步截断它,所以最终数字将是

8.18

所以基本上我需要让它只有 2 位小数的浮点数。 我尝试使用 Math.floor 和 ceil 但无法弄清楚!

【问题讨论】:

  • 你能除以 1000 吗?您的第 3 步和第 4 步的幅度不同,因此这不再是截断/舍入,这会使您的目标变得混乱。
  • 8183如何识别为8.18?

标签: javascript floating-point decimal


【解决方案1】:

好吧,你想要完成的事情并不完全清楚,但我认为如果你从除以 1000 开始,然后在其上调用 toFixed,它会给你想要的结果。

var before = 8183;
var after = (before / 1000).toFixed(2); //8.18

【讨论】:

  • +1,因为我正要发布相同的内容。 8183 是一个与 8.xx 完全不同的数字,因此您很可能必须使用除法来移动小数点。
  • +1,也是我要发布的内容。但是,检查你的结果,你犯了一个错误://8.81 应该是//8.18
【解决方案2】:

你可以除以 10,直到你小于 10:

var digits = 8183;
while((digits = digits/10) > 10) {}
digits = digits.toFixed(2); // 8.18

对于负数,您可能希望存储一个布尔值并使用Math.abs(digits)

对于小于 0 的数字,您可能希望使用倍数而不是除数。


如果您真正想要的只是科学记数法,请使用toExponential(2)

【讨论】:

    猜你喜欢
    • 2014-03-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-25
    • 2010-12-08
    • 2014-11-24
    • 2017-06-20
    • 1970-01-01
    相关资源
    最近更新 更多