我需要做一些计算,但我遇到了一个非常低的值问题,例如,我需要得到0.005的2.7%,最后得到1.35000000000000003e-4,这不是我想要的,我只需要知道如何才能准确地理解这些值,我现在做的是<value> * 2.7 / 100,它对整数或浮动的值都很有用。
例如,我需要的是0.005的2.7%,需要显示为0.000135。
发布于 2017-07-07 01:09:21
首先,要理解语言并没有被破坏,它只是计算机在做浮点运算方面真的很差。。
因此,从某种意义上说,1.3500000000000003e-4是准确的,但是这里的问题是,Elixir以指数表示法打印浮点数(非常小和非常大)。有几种方法可以将其打印为0.000135
float_to_binary:
:erlang.float_to_binary(0.005 * 2.7 / 100,:紧致,{:小数,10}) #=> "0.000135“:io.format:
:io.format(~f~n,0.005* 2.7 / 100) #=> "0.000135“exprintf,它是围绕Erlang的:io模块的一个很好的Elixir包装器注意,结果是一个字符串,而不是上面的示例中的一个数字--因为您只是用十进制格式化/打印它。
https://stackoverflow.com/questions/44960798
复制相似问题