我需要进行一些计算,但是我遇到一个值非常低的问题,例如,我需要得到0.005的2.7%,最终得到1.3500000000000003e-4,这不是我想要的值,我只需要知道如何获得这些值的准确百分比,我现在正在做的<value> * 2.7 / 100
对整数或大于0.05的浮点数都有效。
例如,我需要的是0.005的2.7%,需要显示为0.000135。
最佳答案
首先,要了解语言没有中断,只是computers are just really bad at doing floating point math。
因此,从某种意义上来说1.3500000000000003e-4
是准确的,但是您的问题是Elixir以指数表示法打印(非常小和非常大)浮点数。您可以通过几种方法将其打印为0.000135
:
float_to_binary
::erlang.float_to_binary(0.005 * 2.7 / 100, [:compact, {:decimals, 10}])
#=> "0.000135"
:io.format
::io.format("~f~n",[0.005 * 2.7 / 100])
#=> "0.000135"
exprintf
,它是Erlang的:io
模块请注意,在上面的示例中,结果是字符串而不是数字-因为您只是将其格式化/打印为十进制。