過去の桐井戸端BBS (桐ver.8) |
11602 | 数字の小数点の前と後ろを別々に取り出したい | 栗原 寿美生 | 2001/06/14-19:46 |
桐の初心者です。みなさんよいお知恵がありましたらお願いいたします。 数字項目で、「89.3」や「105.1」といったデータを小数点より前だけ,後ろだけ取り出したい時は、 どうしたらよろしいのでしょうか。※「89」と「3」という形。 | |||
11604 | Re:数字を別々に取り出したい | きこり | 2001/06/14-20:23 |
記事番号11602へのコメント Aを対象項目とすると 前だけ項目 B=#INT(A) 後だけ項目 C=A−B というのはだめですか? | |||
11608 | Re:数字を別々に取り出したい | masa | 2001/06/14-20:57 |
記事番号11602へのコメント 栗原 寿美生さん 始めまして項目を作って計算させたらどうでしょうか? [G] [H] [I] [J] [K] [L] 31 6 5.1667 5 0.1667 1667 項目[I] #四捨五入( [G]÷[H] , 5 ) 項目[J] #切り捨て( [G]÷[H] , 0 )ここで整数を取り出す 項目[K] [I]-[J]ここで小数点以下を取り出す 項目[L] #数値(#部分列( #文字列( [K] ) , -3 , -50 ) )-50は小数点50桁ですが、これで十分ではないでしょうか? もっと良い方法があるかも知れませんがこれが浮かびました。 | |||
11615 | 数字を整数部と小数以下に分ける | 悲しげ | 2001/06/14-23:32 |
記事番号11602へのコメント どもっ、栗原さん なるべくシンプルに、と思ったのですが、結構複雑になってしまいました。(^^;) 整数部 #int([a]) 小数点以下 #数値(#部分列(#文字列(#絶対値(#mod([a],1))),3)) ※元の項目を仮に[a]としています。 ※#絶対値を突っ込んだのは、−符号が入った時の対策です。 | |||
11616 | Re:数字を整数部と小数以下に分ける | 【多遊】 | 2001/06/14-23:50 |
記事番号11615へのコメント >整数部 #int([a]) >小数点以下 #数値(#部分列(#文字列(#絶対値(#mod([a],1))),3)) > >※元の項目を仮に[a]としています。 >※#絶対値を突っ込んだのは、−符号が入った時の対策です。 悲しげさんの整数部と 小数部には項目計算式で、#mod([A],1) ではいかがですか | |||
11617 | Re:数字を整数部と小数以下に分ける | 悲しげ | 2001/06/14-23:53 |
記事番号11616へのコメント どもっ、【多遊】さん >小数部には項目計算式で、#mod([A],1) ではいかがですか 私も当初それを考えましたが、駄目なんですね。 これだと、例えば「3.14」の場合、「0.14」となっ てしまいます、欲しいのは「14」なので。(^^;) | |||
11618 | Re:数字を整数部と小数以下に分ける | 【多遊】 | 2001/06/15-00:11 |
記事番号11616へのコメント 訂正 再度記事を拝見いたしましたら、悲しげさんの内容でよかったのですね 質問が数字項目で、「89.3」を「89」と「3」という形に分けるのですから 一度分けた物を再度加えると不都合が起こるのではと勘違いでした。 | |||
11640 | Re:数字を整数部と小数以下に分ける | 栗原 | 2001/06/15-11:20 |
記事番号11615へのコメント みなさん、ご返答ありがとうございました。 レポートを使って、健康管理表の身長や座高の差込印刷に使いたいと思っています。 悲しげさんの方法を使わせていただきました。 しかし、「85.0」の場合に「0」が表示されません。小数点が「0」以外はすべてうまくいきました。 何かレポートの設定等で解決できるのでしょうか。 > >整数部 #int([a]) >小数点以下 #数値(#部分列(#文字列(#絶対値(#mod([a],1))),3)) > >※元の項目を仮に[a]としています。 >※#絶対値を突っ込んだのは、−符号が入った時の対策です。 | |||
11642 | Re:数字を整数部と小数以下に分ける | masa | 2001/06/15-12:02 |
記事番号11640へのコメント 栗原さんへ こんにちは #条件選択を使ったらどうでしょう >しかし、「85.0」の場合に「0」が表示されません。小数点が「0」以外は >すべてうまくいきました。何かレポートの設定等で解決できるのでしょうか。 >> 小数点以下の項目が[B]と言うのがあったとして #条件選択( ([B]=#う .or [B]=0) , 0 , 1,ここに採用する式を入れる ) これは小数点以下の項目値が何もないかもしくは0の時は0を入れて、それ以外は採用しようとしてる式を計算します。 | |||
11644 | Re:数字を整数部と小数以下に分ける | 悲しげ | 2001/06/15-13:06 |
記事番号11640へのコメント どもっ栗原さん、ご採用おありがとうごぜえます。(^^;) >>整数部 #int([a]) >>小数点以下 #数値(#部分列(#文字列(#絶対値(#mod([a],1))),3)) 私は、未定義値の場合は、敢えてゼロにしないで未定義のままが お望みかと想像して、上記を考案した次第です。 ですが、未定義をゼロにしたいのなら、成り行き上この式を活かすことにして(^^;)、 次のようにして見て下さい。 やたら入れ子が増えてしまって、ますますエレガントじゃなくなりますが。 #未定義値変換(#数値(#部分列(#文字列(#絶対値(#mod([a],1))),3)),0) | |||
11652 | Re:数字を整数部と小数以下に分ける | 栗原 | 2001/06/15-15:39 |
記事番号11644へのコメント 悲しげさんありがとうございました。 >#未定義値変換(#数値(#部分列(#文字列(#絶対値(#mod([a],1))),3)),0) こちらを採用させていただきました。 これからもいろいろと質問すると思いますが、宜しくお願い致します。 また、きこりさん・masaさん・【多遊】さんありがとうございました。 | |||
11659 | Re:数字を整数部と小数以下に分ける | MAO | 2001/06/15-19:30 |
記事番号11652へのコメント >悲しげさんありがとうございました。 >>#未定義値変換(#数値(#部分列(#文字列(#絶対値(#mod([a],1))),3)),0) >こちらを採用させていただきました。これからもいろいろと質問すると思います >が、宜しくお願い致します。また、きこりさん・masaさん・【多遊】さんありがと >うございました。 > 解決した後に蒸し返すようですみませんが、このままの式だと 「89.5」の小数部は、確かに「5」になりますが 「89.05」の小数部も「5」になるような気がするのですが! 計算なしでレポートでの差し込みにだけに使うのでしたら 式の#数値の部分は除いて文字列として扱った方がいいのでは? 間違っていたらごめんなさい。 | |||
11661 | Re:数字を整数部と小数以下に分ける | 悲しげ | 2001/06/15-20:42 |
記事番号11659へのコメント どもっ、MAOさん >解決した後に蒸し返すようですみませんが、このままの式だと > >「89.5」の小数部は、確かに「5」になりますが >「89.05」の小数部も「5」になるような気がするのですが! ほっほっほ、おっしゃるとおりですね。(^^;) まっ、身長と座高のようですから、89.5cm等のように精度的にmmまでで、 小数2位以降は考慮無用なのかどうか、あとは栗原さんのお考え次第ですね。 >式の#数値の部分は除いて文字列として扱った方がいいのでは? 印刷に使うだけで、もし小数点の桁数が固定であるのなら、 #右側文字列(#文字列([a],-n),n) でよかったのかも。(^^;) | |||
11691 | Re:数字を整数部と小数以下に分ける | natsu | 2001/06/16-15:06 |
記事番号11640へのコメント >レポートを使って、健康管理表の身長や座高の差込印刷に使いたいと >思っています。 健康管理表の数値記載欄には、あらかじめ小数点のデシマルが印刷されていて __._cmという欄に数字のみレポート印刷という所でしょうか そうすると、一番苦労するのは視力の印字だと思います これは、桁数の固定ができません つまり、1.2は小数点1桁ですが、0.05は小数点2桁での処理になります すでにMAOさんがレスの中で 「89.5と89.05」の場合をコメントされていますが、やはり文字列での処理が適当でしょう 私も経験がありますが、元になる数値(視力)によって0.1以上なら小数点1桁処理、 0.1未満なら2桁処理で条件選択とし、印字する内容を決定していました | |||
11692 | Re:数字を整数部と小数以下に分ける | 悲しげ | 2001/06/16-15:53 |
記事番号11691へのコメント その昔、こんなことを書いていたのを思い出しました。 http://www2.k3-unet.ocn.ne.jp/board/kiri/board.pl?no=0000000008&action=view&id=0000000123 小数点位置を固定した右寄せまたは左寄せ出力です。 小数点を半角スペースに文字置換したら使えるかもしれません。 |