Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Elixir 摆脱科学记数法_Elixir - Fatal编程技术网

Elixir 摆脱科学记数法

Elixir 摆脱科学记数法,elixir,Elixir,我需要做一些计算,但是我遇到了一个非常低的值的问题,例如,我需要得到0.005的2.7%,最终得到1.350000000000003e-4,这不是我想要的,我只需要知道如何才能得到这些值的准确百分比,我现在正在做的是*2.7/100,它对整数或大于0.05的浮点值非常有效 例如,我需要的是0.005的2.7%,需要显示为0.000135。首先,要理解语言并没有被破坏,只是被破坏了 因此,从某种意义上说,1.350000000000003e-4是准确的,但您这里的问题是Elixir以指数表示法打印

我需要做一些计算,但是我遇到了一个非常低的值的问题,例如,我需要得到0.005的2.7%,最终得到1.350000000000003e-4,这不是我想要的,我只需要知道如何才能得到这些值的准确百分比,我现在正在做的是
*2.7/100
,它对整数或大于0.05的浮点值非常有效


例如,我需要的是0.005的2.7%,需要显示为0.000135。

首先,要理解语言并没有被破坏,只是被破坏了

因此,从某种意义上说,
1.350000000000003e-4
是准确的,但您这里的问题是Elixir以指数表示法打印(非常小和非常大)浮点数。有几种方法可以将其打印为
0.000135

  • 使用Erlang的
    float\u to\u 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"
    
  • 或者在Erlang的
    :io
    模块周围使用一种很好的长生不老药包装器



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

很好,我一定提到了,但我正在将这些值存储在数据库中,我是否应该使用
:string
而不是
:float
?:-/不,按原样储存。值是准确的,这就是Elixir表示它们的方式。哦,好吧,我现在理解并修复了它,这有点让我发疯,值在数据库中是浮动的,但我只是在Phoenix模板和其他所有东西上格式化它们,谢谢!以前应该提到过这一点:如果数据库中存储的数字是敏感的或需要非常高的精度(例如货币),请使用not
Float