2017-02-01 16 views
1

sasに問題があります。私は数値が文字列として格納されているデータセットを持っています。問題は、数字のサイズとフォーマットが大きく異なることです。私は例を与える:大きい数字と小さい数字の文字列を数値に変換する

data s; 
    x='123456789'; 
    y=input(x,best32.); 
    z = '0.0001246564'; 
    a = input(z,best32.); 
    put 'a='y; 
    put a; 
    keep y a; 
run; 

出力:

y= 
1.2345679E14 
a= 
0.00012465644 

あなたは、私は大きな整数で情報を失う見ることができるように。情報を失わないために私のプログラムを作るにはどうすればいいですか?私の知る限り、この数字は15桁未満ですsas large number。私は本当にy = float(x)を設定できるpythonが本当に欠けています。

答えて

2

情報の損失は発生していません。 formatの場合はinformatと間違えているだけです。

informat best32.は、SASに32の幅の文字列をインポートするように指示しました。すべての良い、あなたは15文字すべての番号に格納されています。

今、あなたはすべての15個の文字を表示したい場合、あなたは出力にそれを見るために、デフォルトbest12.形式よりも広い形式を使用する必要があります。

data s; 
    x='123456789'; 
    y=input(x,best32.); 
    z = '0.0001246564'; 
    a = input(z,best32.); 
    put y= best32.; 
    put a= best32.; 
    keep y a; 
run; 

しかし、あなたはそれをこのように表示されない場合でも、番号yは、それと同様に数学を行うならば、123456789とまったく同じです。情報を失うことはなく、正しく表示していないだけです。

+0

ありがとうございました。そのベスト12。デフォルトは私が知りませんでした:) – fossekall

関連する問題