2015-01-19 5 views
1

나는이 스크립트를 실행하면 :루비 지수 문제

pi=3.14 
NozzleAreaM=.005**2*pi.to_f 

그것은 반환을 7.85e-05 대신 0.000078는 일반 계산기에하는 것처럼. 나는 도처에서 보았고 나는이 문제에 대한 해결책을 찾을 수 없다. 당신이 플로트 표시 할 어떤 형식

+1

부동 소수점 정밀도 :

또한 루비 PI Math 모듈의 상수 (math 모듈 자동 요구)를 제공한다. – meagar

답변

1

당신은 그냥 루비 말할 필요 :

pi = 3.14 
nozzle_area = 0.005**2 * pi 

printf "%.8f \n", nozzle_area 

--output:-- 
0.00007850 

을 PRTINF와/sprinf 여기를 참조하십시오 :

http://www.ruby-doc.org/core-2.2.0/Kernel.html#method-i-sprintf

참고 부동의 표시 특정 형식은 루비가 내부적으로 float을 저장하는 방법에 영향을주지 않습니다.

또한, 다음과 같은 코드를 작성하는 것은 괜찮 :

pi=3.14 
NozzleAreaM=.005**2*pi.to_f 

...만큼 당신이 다른 사람에게 코드를 표시 할 필요가 없습니다로. 코드에 대한 질문을하고 싶다면 읽기 쉬운 코드를 작성해야합니다. 즉, 모든 것을 공백없이 벼락치기를해서는 안됩니다.

또한 대문자로 시작하는 변수는 루비에서 상수입니다. 이것이 의미하는 바를 모르는 경우,이 규칙에 따라 생활하십시오. 변수 이름을 대문자로 사용하지 마십시오.

또한 pi 변수는 float (소수점이 있기 때문에)이므로 to_f()을 호출 할 필요가 없습니다.

nozzle_area = 0.005**2 * Math::PI 

printf "%.8f \n", nozzle_area 

--output:-- 
0.00007854 
+0

정말 고마워, 나는 그걸 영원히 연구 해왔다. – zackattack1z1

+0

@ zackattack1z1, 여러분 환영합니다. – 7stud