- ベストアンサー
フォートランでフォーマット変換する方法とは?
boogeymanの回答
Visual StudioのFotranは知りませんが、一般的なFortranの文法では… (符号と空白を含む)全体の桁数が12桁、小数点以下が3桁、指数部が3桁ですので、 「E12.3E3」(←全角で記述してます)で良いと思います。
関連するQ&A
- FortranのFormatについて
Fortranで数値を出力するときのFormatについて質問です。 数値を小数点を無くして、指数表示で出力したいです。 例えば 0.0025 を 25E-4 と出力するのが希望です。 調べたところ、 『■pe■.■e■』(■は数値)というFormatにすれば、 1番目の値は小数点以上の桁数 2番目の値は数値が入る幅 3番目の値は小数点以下の幅 4番目の値は指数の桁数 ということがわかりました。 『2PE8.3e1』だと 0.0025 は 25.00E-4 と出力されます。 『2PE6.1e1』だと 0.0025 は 25.E-4 と出力されます。 しかし、この小数点を消す方法がどうしてもわかりません。 『2pe6.0e1』と設定してもうまく出力されません。 詳しい方がいらっしゃったらぜひ教えてください。 よろしくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- UNIX フォートラン 数値計算精度
フォートランでの数値計算精度に関して困っております。 サンマイクロシステムズ社製、UNIX、Solaris10(64bit)において、 下のフォートランプログラム、 IMPLICIT REAL*8(A-H,O-Z) X=1.0D0 A=SIN(X) WRITE(*,100)A 100 FORMAT(F50.40) STOP END を実行させると、 A=0.8414709848078965048756572286947630345821 となり、16桁以降にも数値が出てきます。 これはなぜでしょうか? UNIXコンパイラの特徴なのでしょうか?
- 締切済み
- その他(インターネット・Webサービス)
- 浮動小数点数型
単精度浮動小数点型と倍精度浮動小数点数型、それぞれ値がとりうる範囲を教えてください。 単精度浮動小数点型 負の値は -3.4028235E+38 ~ -1.401298E-45、 正の値は 1.401298E-45 ~ 3.4028235E+38 の範囲の値 倍精度浮動小数点数型 負の値は -1.79769313486231570E+308 ~ -4.94065645841246544E-324、 正の値は 4.94065645841246544E-324 ~ 1.79769313486231570E+308 の範囲の値 とは記述してあるのですが、実際に小数1桁なら整数部はどのくらいの範囲の値がとれるのか、皆目わかりません。 どうか、わかりやすく教えてください。 よろしくお願い致します。
- ベストアンサー
- その他(プログラミング・開発)
- visual studio 2008 C# で、値を入れるテキストボッ
visual studio 2008 C# で、値を入れるテキストボックスを作り、そのテキストボックスに入力できる値を小数点2桁までとするにはどの様にすれば宜しいでしょうか?
- 締切済み
- Visual Basic
- 以下の問題の解答・解説を教えてください。
2次関数y=x2乗-2x+aの値が0≦x≦3の範囲で常に負となるよう、定数aの値の範囲を定めなさい。 御回答よろしくお願いいたします。
- ベストアンサー
- 数学・算数
- VBのフォーマットで+と-の値をそろえたい
Visual BASICで値をフォーマット命令を使い、+あり、-ありの値を縦に表示させ、各桁をそろえたいのですが、+の場合は、+を表示しないので、+の値だけ、1桁左詰めで表示されてしまいます。簡単に解消できる方法はありますか? 教えてください。 現在のプログラム print Format(変数,"###") 今の例 123 -123 希望する表示 123 -123 ブラウザで見ると3と3がそろっていませんが、合わせて書いたつもりです
- ベストアンサー
- その他(ソフトウェア)
- 数のこの問題が全く分かりません
2次方程式x2乗-(m-4)x+m-1=0が、異なる2つの負の解を もつとき、定数mの値の範囲を求めよ。 という問題です。どなたか詳しく教えてくれる方がいましたら よろしくお願いします。
- 締切済み
- 数学・算数
- C#のキャストについて(32bit浮動小数点)
こんにちは。 現在、Visual Studio 2005を使用してC#のプログラムを作成しています。 32bitの浮動小数点のデータを表示しようとしているのですがうまくいきません。 具体的な例としては 0x42F6E9E0 → 123.456789 0x4476E9E0 → 987.654321 のように変換した結果を表したいと考えています。 c言語では int main() { int h = 0x42F6E9D5; float f; f = *(float *)(&h); return 0; } のようにすればfで値(123.45678)が取得できたのですが、 これと同じ事をC#ではどのように書くのでしょうか? ポインタを含んだキャストのやり方がわかりません。 以上よろしくお願い致します。
- ベストアンサー
- その他(プログラミング・開発)
- perl 積算の仕方が解らない
フォートランで作られたデータを、perlで作り直そうと始めました。 なんとか、perlの中で値の計算までは出来たのですが、 下記データの2フィールド目に対して積算の仕方が解りません。 awkでは、awk '{SUM += $2;printf("%s %10.4e\n", $1, SUM)}'でできましたが、 perlで中ではどのようにするのか? 1998-04-20T16:16:00 6.533078e+05 1998-05-01T01:59:00 1.501809e+06 1998-05-05T07:20:00 7.202719e+05 1998-05-05T07:24:00 9.799618e+05 ついでに、御存じでしたら、御教授ください。 awkとperlの計算結果は全く同じにでましたが、フォートランの結果は 下記のように微妙に違ってしまう処がございます。 それは、どうしてでしょうか? awk,perl の結果 フォートランの結果 フォートランの7ケタの結果 7.202719e+05 7.202718e+05 7.2027181e+05 9.799618e+05 9.799616e+05 9.7996169e+05 以上 よろしくお願い致します。
- ベストアンサー
- Perl
お礼
character*30 fileout dimension x(10000) write(*,*)'out put file name' read(*,*)fileout do 100 i=1,10000 x(i)=10/i 100 continue open(10,file=fileout,status='new') do 110 i=1,10000 write(10,1000) x(i) 110 continue 1000 format (' ',e12.3e3) close (10) end こう書いたら 0.100E+002 0.500E+001 0.300E+001 0.200E+001 0.200E+001 0.100E+001 0.100E+001 0.100E+001 0.100E+001 0.100E+001 0.000E+000 0.000E+000 0.000E+000 0.000E+000 0.000E+000 0.000E+000 0.000E+000 0.000E+000 0.000E+000 という感じで指数のマイナスが出ないのですがどうしたらいいのでしょう?