当我运行此脚本时:
pi=3.14
NozzleAreaM=.005**2*pi.to_f
它返回7.85e-05而不是正常计算器上的0.000078。我到处寻找,我找不到解决这个问题的方法。
答案 0 :(得分:1)
您只需要告诉ruby您希望以何种格式显示 float :
pi = 3.14
nozzle_area = 0.005**2 * pi
printf "%.8f \n", nozzle_area
--output:--
0.00007850
请参阅prinf / sprinf:
http://www.ruby-doc.org/core-2.2.0/Kernel.html#method-i-sprintf
请注意,以特定格式显示浮动不会影响ruby在内部存储浮动的方式。
另外,编写这样的代码很好:
pi=3.14
NozzleAreaM=.005**2*pi.to_f
...只要您永远不需要向其他人展示您的代码。如果您想询问有关代码的问题,那么您需要编写清晰的代码。这意味着你不应该把所有东西塞进去,没有空格。
此外,以大写字母开头的变量是ruby中的常量。如果您还不知道这意味着什么,请按照此规则生活:不要将任何变量名称大写。
另外,你的pi变量已经是 float (因为它有一个小数点),所以不需要调用to_f()
。
此外,ruby在Math
模块中提供pi作为常量(自动需要Math模块):
nozzle_area = 0.005**2 * Math::PI
printf "%.8f \n", nozzle_area
--output:--
0.00007854