- ベストアンサー
RPG E仕様書について
tarankoの回答
配列にどのように値を入れるかによりコーディングが違います。 また、説明が難しいです。 他の方法として、多少長くはなりますが、 IF・ELSE・ENDIFを使用して分岐させる方法か、 受注数量下限数と割引率のファイルを作りCHAINで 受注数量下限数から割引率を取ってくる方法があると思います。 まず、この計算は画面から入力した時割引の計算をするにしても ファイルのデータを計算するにしても何らかの形で受注数量下限数を 算出していると思うのですが、IF・ELSE・ENDIFを使用すると 受注数量下限数の算出は必要なくなると思います。 受注数量下限数と割引率のファイルを作った場合は、受注数量下限数や 割引率が変わった場合、ファイルの内容を変更するだけで、メンテナンスが できます。(他のやり方だとRPGのコンパイルが必要になります) E仕様書を使うと個人的に見づらいので苦手というのがあるのですが、 いかがなものでしょうか。
関連するQ&A
- RPGについて
やりたいことなのですがまず一つは、前レコードの受注CD、得意先CD11桁と新しいレコードの受注CD、得意先CD11桁が違った場合何か処理を起こすようにしたいのですが・・・ この場合新しいレコードの11桁も前のレコードの11桁のようにi仕様書で設定しなければいけないのでしょうか? 前レコード11桁は以下のような形で行いました。 例)受注コード(6桁数字) 得意先コード(5桁数字) (I仕様書) DS 1 110 OLDCD ←(1) 1 60 O@JHCD ←(2)受注コード 7 110 O@TOCD ←(3)得意先コード ------------------------------- (C仕様書) Z-ADD受注コード O@JHCD Z-ADD得意先コード O@TOCD もう一つはCHAIN命令で検索した場合、該当レコードがあった場合サブルーチン¥CALLへいき、該当レコードがなかった場合サブルーチン¥CALL2を行いたい場合どのように組めばいいのか教えてください。
- ベストアンサー
- その他(プログラミング・開発)
- JavaScriptで正規表現と置換
タイトル通りのことをしたいのですがいまいち出来ないです。 変数 A00 = "かきくけこ"; 配列 x[0] = "あいうえおA00さしすせそ" ; 配列x[0]内の「Aと2桁の数字」を探し、該当する変数と置換する。 と言うことをしたいのです(つまりx[0] = "あいうえおかきくけこさしすせそ") x[0].match() で探すことは出来ますが .replace()の書き方が分かりません^^; どちら様か御教授よろしくお願いします。
- ベストアンサー
- JavaScript
- 仕様書の表記について
仕様書を書くにあたって数字や文字を表記する場合に "zzz9"とか時間では"yyyy/mm/dd"と表記すると思うのですが、それらの標準的な説明を書いたURLとかご存知のかたおられますでしょうか? 検索してもうまく検索できませんでした・・・ 具体的に何が知りたいかと言いますと ここに表示する値は数字何桁であるとか、ここには英数字のみとか 文字列何文字とかっていうフォーマットを表記したいのです。 よろしくお願いします。
- ベストアンサー
- SE・インフラ・Webエンジニア
- VB初心者。小数点以下の表示でつまづいています(2
『VB初心者。小数点以下の表示でつまづいています(涙』 (・・・過去質問 解決済み) では大変お世話になりました。 さて、上記質問は解決したかに思い、お礼もしてして終了したのですが、 検証しておりましたら問題が見つかりました。 以下、質問内容を修正して、再質問します。よろしくお願いしますm(__)m VB .NET環境 Microsoft Visual Studio / ActiveReportで帳票を作成しています。 DBからの値が、小数点以下ありの場合(例:1.07)の時はそのまま表示し、小数点以下が.00の場合(例:1.00)の時、整数部分のみを表示させたいのです。 質問の『値』ですが、今回の値は小数点第2位までです。 #.00 の時 → # と表示。 #.01~99 の時 → そのまま表示。 としたいのです。 ちなみに、小数点から左(整数部分)の桁は9桁まで入る可能性があります。 前回解決した際は、小数点より右1桁、左1桁で質問してしまったので、 H_数量.Text = Format(Val(H_数量.Text), "0.0") If Right(H_数量.Text, 2) = ".0" Then H_数量.Text = Format(Val(H_数量.Text), "0") End If と回答いただき、このパターンではうまく動きました。 小数点以下2桁のパターンも、コードを変更し、 H_数量.Text = Format(Val(H_数量.Text), "0.00") If Right(H_数量.Text, 2) = ".00" Then H_数量.Text = Format(Val(H_数量.Text), "0") End If でOKでした。 しかし、小数点より左9桁、右2桁を試してみると、ダメなのです。 1行目、 H_数量.Text = Format(Val(H_数量.Text), "0.00") を、 H_数量.Text = Format(Val(H_数量.Text), "#,##0.00") と変更しても、 小数点左が9桁には対応できません。 "###,###,##0" とか、"000,000,000" とか色々試しましたが、 500.00 の時、 000,000,500 と表示されました。 どのようにコードを書いたら良いでしょうか? アドバイスお願いしますm(__)m
- ベストアンサー
- Visual Basic
- 桁数の求め方(マクロ)
セルA1に数字(0より大きい数字で、小数もありうる)が入っているものとします。 これの桁数を求めたいのです。 たとえばA1の値が 3なら → 1 25なら → 2 392なら → 3 501.57なら → 3 という感じです。 ただし1より小さい小数の場合は 0.25なら → -1 0.096なら → -2 0.00056なら→ -4 としたいです。 要するにA1の数値に対して、0以外の数値が 何桁目で初めて出てくるか、ということを調べたいです。 (説明が分かりにくく、申し訳ありません。) =ROUNDDOWN(LOG10(A1),0)+1 であれば1より大きい数字は対応できます。 しかし1より小さい数字の場合は不具合が起きます。 そのため、 if文を使い、int(A1)が0かどうか判定 0でなければ→=ROUNDDOWN(LOG10(A1),0)+1を使用 0であれば→A1の値に10をかけたものについてintをとり、0でなければ-1を出力。0であればさらに10をかけintをとり、0でなければ-2を出力。0であれば・・・・のループ 等の手順を考えてみましたが、どうにもスマートでなく・・・。 何か良い解決策はありませんでしょうか。 お手数をおかけしますが、 ご教授願えればと思います。 よろしくお願いいたします。
- ベストアンサー
- その他(プログラミング・開発)
- 補数の定義について
(●一般的に知られた事柄) 10進数の「9の補数」とは,各桁ごとに9からその数字を引いた値をいう. 10進数の「10の補数」とは,各桁ごとに9からその数字を引いた値に1を加えた値をいう. 2進数の「1の補数」とは,各桁ごとに1からその数字を引いた値をいう. 2進数の「2の補数」とは,各桁ごとに1からその数字を引いた値に1を加えた値をいう. (●自分で思った事柄) ですが,では, n進数の「(n-1)の補数」とは,各桁ごとに(n-1)からその数字を引いた値をいう. n進数の「nの補数」とは,各桁ごとに(n-1)からその数字を引いた値に1を加えた値をいう. と言いますか?? 特に, 16進数の「15の補数」とは,各桁ごとに15からその数字を引いた値をいう. 16進数の「16の補数」とは,各桁ごとに15からその数字を引いた値に1を加えた値をいう. と言わずに 16進数の「0x0fの補数」とは,各桁ごとに0x0fからその数字を引いた値をいう. 16進数の「0x10の補数」とは,各桁ごとに0x0fからその数字を引いた値に1を加えた値をいう.と言った方がいいのでしょうか? そもそも例えば10進数でこの9の補数や10の補数の9や10の数字の由来は何なんでしょうか??
- ベストアンサー
- その他(学問・教育)
- 実験標準偏差について
具体的に測定した値が1.85、実験標準偏差は0.006となりました。実験標準偏差の有効数字の桁が1桁の場合はそのままであるとならったので0.006のままでいいと思うのですが、それだと測定した値と小数点以下の桁が異なります。(それぞれの最下位の位をそろえると習いました)測定した値の有効数字は3桁であったので1.850にするわけにもいかないと思います。この場合どう表記するべきなのでしょうか。よろしくお願いします。
- ベストアンサー
- 物理学