摆脱科学记数法

Agu*_*xez 2 elixir

我需要做一些计算但是我遇到的问题是非常低的值,例如,我需要获得0.005%的2.7%而我最终得到1.3500000000000003e-4这不是我想要的,我只需要知道如何获得这些值的准确感知,我现在正在做的是<value> * 2.7 / 100对整数或大于0.05的浮点数有效.

例如,我需要的那个是0.005%的0.005,需要显示为0.000135.

She*_*yar 8

首先,要了解语言没有被破坏,只是计算机在进行浮点数学时非常糟糕.

因此,从某种意义上讲,这1.3500000000000003e-4是准确的,但你的问题是Elixir以指数表示法打印(非常小和非常大)的浮点数.您可以通过以下几种方式将其打印为0.000135:


请注意,结果是一个字符串,而不是上面示例中的数字 - 因为您只是以十进制格式化/打印它.

  • 之前应该提到过:如果您在DB中存储的数字是敏感的或需要非常高的精度(例如金钱),请使用[`Decimal`](/sf/ask/15712371/) `Float`. (2认同)