どのようにπSAS内で計算されましたか?
質問
単に好奇心!私はSASが保持しているπの値が実際に間違っていることを発見します。
たとえばます:
data _null_;
x= constant('pi') * 1000000000000000000000000000;
put x= 32.;
run;
は、πの値を与える(3)141592653589792961327005696
しかしながら - πはもちろんである(3)1415926535897932384626433832795( http://www.joyofpi.com /pi.htmlする) - 31 DPに
。与えるもの?? !!
解決
14の小数点以下の定数としてSAS店のPIを。あなたは乗算ステップをしたとき、あなたが見ているの違いは、浮動小数点演算のアーティファクトである。
data _null_;
pi=constant("PI");
put pi= 32.30;
run;
/ *ログオン* /
pi=3.141592653589790000000000000000
他のヒント
PIが設定された精度にすべてのプログラミング言語で一定として保持されます。それは計算されません。あなたのコードはちょうどPIはSASでどのように正確に公開します。
ギャリーShutlerが言ったように、
、それが定数として開催されています。彼らはすぐに操作することができる非常に良い近似値として保存されているので、コンピュータ言語の数値型でその小さな小数値は、めったに正確な(実際には、その精度はその精度よりも低くすることができる)が全てではないことに注意してください。あなたは(金融・科学的な努力のように)優れた精度が必要な場合は、(計算速度を犠牲にして)完全に正確で扱うJavaのBigDecimal
などの特殊なタイプを使用する必要があります。 (申し訳ありませんが、SASはそうBigDecimal
用のアナログ知らない知らない。)
所属していません StackOverflow