1 名前:デフォルトの名無しさん [2007/06/27(水) 07:23:27 ] プログラミング言語Javaに関する質問スレです。 JavaScript, Ajaxの質問は、ここでは受け付けていません。 Web製作板をご利用ください。pc10.2ch.net/hp/ 過去ログ、関連スレッド、よくある質問とその回答など、 質問をする前に、貴方が見なければならないサイトについての情報は、 下のwikiのページにまとめてあります。 www.wikiroom.com/java/ これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、 wikiからのリンクをおたどりください。 よくある質問 ・「コマンドまたはファイル名が違います」 「'javac' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」 「Exception in thread "main" java.lang.NoClassDefFoundError: 」 www.wikiroom.com/java/?path,classpath ・String に == は使うな。equals() を使え。 ・「\12288 は不正な文字です。」 文字リテラル以外で全角スペースは使えません。半角スペースに。 ・その他の質問→「APIのjavadoc見ろ」 前スレッド 【初心者】Java質問・相談スレッド102【大歓迎】 pc11.2ch.net/test/read.cgi/tech/1180419689/ /* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。 質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */ また、当スレで質問をするかたは、回答をもらえたときに、 wikiの更新をして頂ければ、忝なく存じます。 次スレは>>980 あたりで。
516 名前:デフォルトの名無しさん [2007/07/10(火) 18:06:05 ] 変数の型を調べる方法ってありますか?
517 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 18:07:04 ] これでよかろ。 NewConnection newConnection = new NewConnection(connection); ただし、NewConnection は java.sql.Connection になれないので、 java.sql.Connectionを前提にしているプログラムが既にあるなら、 それを書き直さないといけなくなる。新規開発ならいいけどね。 あとは個人的な感覚だけど、独自規則のAPIを強制されるのはイヤダ。 APIは標準だが実装は(APIの範囲内で)独自、なら許せるが。
518 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 18:17:13 ] >>517 なるほど。newConnectionの中でconnectionをprivateで持っておいて commit()とrollback()は作らず、それ以外はnewConnectionのpublicメソッドを通して connectionに投げると。ありがとうございます。 >あとは個人的な感覚だけど、独自規則のAPIを強制されるのはイヤダ。 >APIは標準だが実装は(APIの範囲内で)独自、なら許せるが。 自分も独自APIを強制して自由度を奪うのは好きじゃないですが DB関連クラスだけでcommit()とrollback()のみの制限ならギリギリ許容範囲内かなと思っています
519 名前:デフォルトの名無しさん [2007/07/10(火) 18:20:17 ] >>516 判定したい型が決まっているなら instanceof演算子 とりあえず型を知りたいだけなら "不明オブジェクト".getClass().getName()
520 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 19:57:44 ] SPAMメールを受けたときに 逆に送信者に攻撃を仕掛けて 二度と送ってこないようにするには Javaではどのような方法がありますか?
521 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 20:32:13 ] Javaを辞めるしかないです。 さようなら。
522 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 20:48:44 ] >>520 オーケー。いい方法を思いついた。 試してみたいので、お前のメールアドレスを教えてくれ。
523 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 21:41:06 ] root@localhost
524 名前:デフォルトの名無しさん [2007/07/10(火) 21:58:09 ] javaのプログラムからコマンドプロントを使ってcdコマンドなどで自動的に特定のフォルダに移動して、特定のファイルを実行したいのですが、探しても方法が見つかりません。 よろしければ教えていただけないでしょうか?
525 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 22:05:35 ] フレームのサイズ変更についての質問です。 サイズを変更したことをリアルタイムに感知したいんですが、どのような方法があるでしょうか? MouseMotionだとD&Dしてる間はメッセージが送られず、componentResizedも試しましたがマウスボタンを離した瞬間しか感知しません (できればその移動距離か変更後のサイズも知りたいです) JAVAではそういうのは想定してないんでしょうか。 >>524 Windowsなら、○○.batっていうファイルつくって右クリック編集 中に ------------ cd 移動先 java メインクラスの名前 ----------- の2行を書けばできるます。 詳しくはバッチファイルでしらべてくらはい
526 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 22:06:09 ] Excelのファイルがいくつかのフォルダに分かれて存在していて それぞれのフォルダはさらにサブフォルダをいくつか持っています 全部のフォルダをたどって全部のExcelファイルから 特定のシートの特定のセルを抽出していきたいのですが どのようにすればよいのか検討も付きません
527 名前:524 [2007/07/10(火) 22:12:30 ] バッチファイルをつかってjavaのクラスファイルを実行するのではなく、javaのプログラムからコマンドプロントのコマンドを入力して特定の処理をしたいのですが。 そのやり方を知っていたら教えて下さい。
528 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 22:14:57 ] >>527 そういうことね、勘違いしてた
529 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 22:57:20 ] >>524 Runtime.getRuntime().exec(☆DOSコマンド☆); 特定の処理がわからないのでここまで
530 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 23:06:56 ] >>527 jrunscriptつかえ。そういうときのためにわざわざ用意されたんだから
531 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 23:27:40 ] ワンランク上になりたいんだけどなにしたらいい Java歴半年くらいでいまJSPとかデータベース使って小規模なシステム作ってる
532 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 23:42:01 ] >>524 java1.5ならProcessBuilderが熱い
533 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 23:49:44 ] >>531 EclipseのプラグインとかSwingなどのGUI イベントドリブンなアプリケーションに慣れ、スレッドをある程度使いこなすと差は出来る
534 名前:デフォルトの名無しさん mailto:sage [2007/07/11(水) 00:29:28 ] >イベントドリブン そこで Visual C++ ですよ
535 名前:デフォルトの名無しさん mailto:sage [2007/07/11(水) 00:40:07 ] >>533 EDTで時間かけてイベントキュー詰まらせてアーーーー!!とか・・・ VMのスレッド実装の差異やCPUの数が2以上あってアーーー−!!とか? 個人的にはJWSに触れとくのお勧め。
536 名前:デフォルトの名無しさん mailto:sage [2007/07/11(水) 02:45:59 ] MouseListenerとMouseMotionListenerは同時に使えない?なんてことはないよな・・・ どっちかを消すと上手くいくのに、 どちらも宣言するとシンボルが見つかりませんといわれる・・・
537 名前:デフォルトの名無しさん mailto:sage [2007/07/11(水) 02:51:48 ] 自己解決。頭がおかしくなっていたようだった
538 名前:デフォルトの名無しさん [2007/07/11(水) 13:28:05 ] Javaを用いて掲示板を作っています 形はそこそこ出来てきたので「同一人物(同IP)からの二重投稿を禁止する」機能をつけようとしているのですが こういったものを作るのに便利なクラスはあるのでしょうか?
539 名前:デフォルトの名無しさん mailto:sage [2007/07/11(水) 15:19:11 ] インデント不良って何ですか?
540 名前:デフォルトの名無しさん mailto:sage [2007/07/11(水) 15:23:12 ] if (a > b) b = a; a = 1; System.out.println(b); みたいに書いてa > bでないときでもa = 1;が実行されるように錯覚させる悪い奴のこと
541 名前:デフォルトの名無しさん mailto:sage [2007/07/11(水) 15:25:29 ] 逆だ a > bの時にしかa = 1;が実行されないように、だ
542 名前:デフォルトの名無しさん mailto:sage [2007/07/11(水) 17:19:25 ] はじめからブロックにしとけば良いんだよ。 どうせ後から変更されるんだし。 if (a > b){ b = a; } a = 1; System.out.println(b);
543 名前:デフォルトの名無しさん [2007/07/11(水) 19:31:51 ] if (a>b) b=a; a = 1; System.out.println(b); こう書けば短い。
544 名前:デフォルトの名無しさん mailto:sage [2007/07/11(水) 23:26:19 ] 1:JSPの画面での入力処理 2:javaでcsvファイル読んだりあれこれしてDBに書き込む 3:DB書き込み結果をJSPで表示、というのを作っています。 これに規定の時間を越したらエラーとしてタイムアウト画面へ遷移する機能を 追加しようと思っています。 で、Actionで try{ Timer timer = new Timer(); timer.schedule(new myTimer(),3000); 色々 }catch(myTimeoutException e){ return (mapping.findForward("error")); } myTimer#run() ←TimerTask継承クラス myTimeoutException e = new myTimeoutException (); throw e; みたいにやってみましたが myTimer#run()までは来るけどActionの方にmyTimeoutException で飛んでこないです。 なんでException飛んでこないのでしょうか?
545 名前:デフォルトの名無しさん mailto:sage [2007/07/11(水) 23:33:56 ] >>544 Threadに関して基本から学びなおして来い 簡単なサンプルをおいておくので実行してみてくれ class ThreadA extends Thread { public void run() { throw new RuntimeException(); } public static void main(String[] args) { new ThreadA().start(); } }
546 名前:デフォルトの名無しさん [2007/07/11(水) 23:56:24 ] swingのフレームワークで定番なのは何なのでしょうか? 今注目されてるのがあれば教えてください。
547 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 00:12:42 ] swingの定番って意味ワカラネーよ java3dとかその拡張ライブラリのことか?
548 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 00:21:01 ] たった2行正確に読めないのかよ。 "フレームワークの"定番って書いてあるだろ
549 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 00:21:57 ] Swing自体がフレームワークのような気もする。
550 名前:デフォルトの名無しさん [2007/07/12(木) 00:31:47 ] そうだね
551 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 00:34:40 ] フレークワークの意味が解っていないに1票。 定番はBorderLayoutとGridBagLayoutだよ、で満足するのかな(=ω=.)
552 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 00:36:31 ] >>544 runメソッド内でThread.currentThread().getName()を出力してみれば? あと、myTimeoutExceptionクラスのコンストラクタの中でもThread.currentThread().getName()を出力して 違いが分かれば無問題♪
553 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 00:43:35 ] >>544 Webサーバとクライアントのイベントのやり取りを調べてくれ、それじゃ実装できん 1.クライアントでタイムアウトを検知したい ⇒ JavaScriptなどで実装 2.サーバーでタイムアウトを検知したい ⇒ 最初のアクセス時間を記録していて差分を取ればいい 尚、2の場合、「せっかっく頑張って入力したのに><」ってなるので注意。
554 名前:546 [2007/07/12(木) 00:46:37 ] >>546 です。 swing自体フレームワークなのですが、 journal.mycom.co.jp/news/2007/04/27/015/index.html itpro.nikkeibp.co.jp/article/COLUMN/20070516/271165/ をみて、只気になっただけです。
555 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 05:40:19 ] 結局、どれもSwing作法の定型句を隠ぺいして楽する枠組みに落ち着く気がする。 javaでswing以上のGUI出しても高度なだけでどのOSでも通用するGUIが提供できなくなるんじゃないかな? LnFがjavaなだけでwin/macユーザーは避けるし。 ポトペタ支援はJSRガンガン出すだろうね。 そんなところじゃない? やっぱベクターベースのGUIツールキットはまだ早いだろうか?
556 名前:デフォルトの名無しさん [2007/07/12(木) 06:50:33 ] java.lang.Mathクラスを使わずに、double型の変数を 小数点以下二桁まで残して切り捨てたいです。 第一感はこういう感じですが、もっと良い方法があれば教えてください。 double total = 1234.5678; int tmp = (int)(total*100); total = tmp/100.00;
557 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 07:00:49 ] >>556 表示の時にのみ切り捨てるべきと考えて、NumberFormat 小数点2桁と固定ならば、intで【全て】計算して、表示する時に100で割る。
558 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 07:13:07 ] >>556 total = new BigDecimal(total).setScale(2, BigDecimal.ROUND_DOWN).doubleValue();
559 名前:あ [2007/07/12(木) 10:31:48 ] 部分検索するプログラムを考えています。 String型のabcがあってabcともにnullならDBの内容を全部返し、bcだけnullならaの値を返すなど全8通りのif文をうまく考えられません。 どなたか1つでもいいのでお願いします。
560 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 10:36:26 ] aを返すとか全部返すとかどういう意味? 全部返すときはa列とb列とc列を連結して返すの?
561 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 10:42:08 ] SQLのWHERE句をStringのパラメータによって変更するってこと?
562 名前:あ [2007/07/12(木) 10:55:29 ] 559です。 値を取得するってことです。 いまアプリケーション作っててサーブレットに書く内容がうまく表現できなくて… if (i == null && t == null && p == null) { String sql = "select * from *****"; ResultSet rs = stmt.executeQuery(sql); とか考えてたんですけど…
563 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 11:40:11 ] なにがしたいのかさっぱりわからない。説明足りなすぎ
564 名前:デフォルトの名無しさん [2007/07/12(木) 11:45:05 ] String abcという書き方ではなく、a,b,cの3つのStringがあり、それぞれnullかnullでないかを判断する必要があるということなのでしょう。
565 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 11:56:27 ] 質問というか、Javaの可変長引数の仕様で疑問に思ったのですが、 void test(int... vector) { if (vector.length == 0) System.out.println("vectorは空です."); else for (int i : vector) System.out.print(i + " "); } こういうメソッドを書くと、可変長引数は引数なしでも実行できるので、 test(); と呼び出すと、"vectorは空です."と表示されます。 ですが、同名の以下のメソッドを同じクラスで定義すると、 オーバーロードされますので、引数が0のときの振る舞いが不定のように見えます。 void test() { test(1); } 実際にやってみたところ、下の関数が呼び出され、"1 "が表示されました。 可変長引数よりもオーバーロードのほうが優先されることがわかりましたが、 引数的にはどちらでも呼び出せるので、しっくりこません。 よければこのようになる理由を教えてもらえますか?
566 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 12:43:04 ] >>565 java.sun.com/docs/books/jls/third_edition/html/expressions.html#15.12.2.5 あたりだね。
567 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 12:52:47 ] >>566 もうちっと上だった。 15.12.2.3 の一番最後に > If no method applicable by method invocation conversion is found, > the search for applicable methods continues with phase 3 (§15.12.2.4). > Otherwise, the most specific method (§15.12.2.5) is chosen among the methods that are applicable by method invocation conversion. メソッド呼び出し変換で適用可能なメソッドが見つからなければ、 メソッド探索はフェイズ3(可変長引数で適用可能なメソッドを探すフェイズ)に移行。 そうでなければ、最適なメソッドはメソッド呼び出し変換で適用可能なメソッドから選ばれる。
568 名前:565 mailto:sage [2007/07/12(木) 13:09:21 ] >>566-567 こんな質問に、的確な返答をありがとうございます。 そうですか、文書で定義されているんですね。 以下チラ裏 Javaって言語の定義が明確なイメージがあるから、こういうどっちとも取れる構文を許容するのは少し以外。 C++なんかでも、オーバーロードには定義が重ならないように注意しているのに、なんか意図して許容してるのかなあ。 まあ、「実装するのがややこしいorパフォーマンスに問題が出る」っていう可能性が一番高い気もする。
569 名前:デフォルトの名無しさん [2007/07/12(木) 13:15:48 ] >>568 printfがやりたかっただけ。
570 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 14:47:05 ] >>568 だからこそJLSで明確な定義があるんじゃないか
571 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 16:17:51 ] printfって要る派と要らん派でもめなかったけ? swap要るか要らんかの話みたいだと思った記憶があるんだが。
572 名前:sage [2007/07/12(木) 21:59:27 ] いまjaxb2.0を使って、xmlからjavaオブジェクトに変換するロジックを考えてるんだけど、 <hoges> <hoge id="hoge1"><value>ほげでーた</value></hoge> <hoge id="hoge2"><value>ほげでーた</value></hoge> <hoge id="hoge3"><value>ほげでーた</value></hoge> </hoges> pubric class Hoges { @XmlElement(name="hoge") private List<Hoge> hogelist = new ArrayList<Hoge>(); ・・・ } @XmlRootElement pubric class Hoge { @XmlAttribute(name="id") private String id; @XmlValue private String value; ・・・ } このxmlの<value>タグが無駄に思えて仕方ない。 <hoges> <hoge id="hoge1">ほげでーた</hoge> <hoge id="hoge2">ほげでーた</hoge> <hoge id="hoge3">ほげでーた</hoge> </hoges> ってな書き方で、"ほげでーた"をHoge.valueにセットする方法ない?
573 名前:デフォルトの名無しさん [2007/07/12(木) 22:11:25 ] スレッドを指定して停止したり、再開させることってできますか?
574 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 22:13:14 ] >>573 できません。自分でフラグを用意してください。
575 名前:556 mailto:sage [2007/07/12(木) 23:15:53 ] >>557 レスありがとうございます。 doubleを使わないんですね。 intで計算すると、どんな良い事があるんでしょうか。 >>558 ごめんなさい 使えるのはjava.util.*だけでした。
576 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 23:48:21 ] すいません、質問させてください。 「UDTの通信で自分のIPアドレスと、通信している相手のIPアドレスを比較するプログラム」というプログラムを作っています。そこで、 相手のIPアドレスは、DatagramPacket.getAddress() で 「192.○.○.○」という様に普通に取れるんですが、 自分のIPアドレスを、InetAddress.getLocalHost().getHostAddress() で 「2001:0:4136:・・・・」という様に(ググってみるとIPv6のIPアドレスらしいんですが)比較できません。 IPv4で自分のIPアドレスを取得するにはどうすればいいんでしょうか? よろしくお願いします。
577 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 00:04:31 ] >>572 うろ憶えだけどXmlMixed?だったかで出来たかも
578 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 00:52:58 ] >>576 UDT?
579 名前:デフォルトの名無しさん [2007/07/13(金) 00:59:48 ] >>574 >>573 たしか一時停止とかならできるのが有ったよ
580 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 01:01:46 ] >>579 どうやってやるのですか? 特別なライブラリを使用するとかでしょうか??
581 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 01:18:02 ] 指定してってのは無理じゃねーの
582 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 01:22:08 ] 対象の Thread が分かってるなら suspend も resume も可能だろが
583 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 04:25:34 ] イベント処理がGUIの例ばかりでよくわかりません。 どなたかGUIではないイベント処理のサンプルコードを教えてくださいませんでしょうか。
584 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 05:21:09 ] じゃあ、プッシュ型のxmlプログラミングでも・・・ まあ、それは良いとして単純なCUIだとループ中にキー入力拾うだけ。 それ以上のものはコンソール制御できないjavaには無関係で どっちにしても例に出すようなサンプルコードはないよね。 イベントドリブンでググった方が良いと思う。
585 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 05:28:47 ] >>583 public class Clock implements java.awt.event.ActionListener { public void actionPerformed(java.awt.event.ActionEvent e) { System.out.println(new java.util.Date()); } public static void main(String[] args) throws InterruptedException { Clock c = new Clock(); new javax.swing.Timer(1000, c).start(); synchronized (c) { c.wait(); } } }
586 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 08:15:59 ] >>585 それ結局はGUI+スレッドに関連したプログラミングなんじゃ・・・。 まあ、java.awt.*パッケージにイベント周り集中してるからjavaのイベント処理は ヘッドレスじゃないだろって考え方もできるから>>583 の質問も的を射てないかも知れんが。
587 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 11:16:43 ] java.io.File#listFiles や java.io.File#list は > 結果の配列の名前文字列は特定の順序にはなりません。 > アルファベット順になるわけではありません。 とありますが、これは名前文字列以外の点においても 不定(少なくとも保証はしない)と言うことなのでしょうか?
588 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 11:21:40 ] >>587 実装的にはOSのAPIが返す順番そのものなので、たいていはディスク上の ディレクトリに記録されている順番になる。だから、意味のある順番で はない。
589 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 11:42:40 ] >>587 そゆ事。 原文みりゃ分かると思うけど > There is no guarantee that the name strings in the resulting array > will appear in any specific order; they are not, > in particular, guaranteed to appear in alphabetical order. 日本語訳では in particular の部分がスッポリぬけてるのね。 もちろん、>>588 がいう「OSのAPIが返す順番そのもの」ってのも一切保証されてない。
590 名前:デフォルトの名無しさん [2007/07/13(金) 11:46:45 ] Tomcatのコネクションプーリングについて以下でOK? server.xmlのJNDI(ResourceParams)の設定でfactoryにBasicDataSourceFactoryなどの コネクションプーリングに対応した、データソース実装クラスのfactoryを 指定する事で行われる。 factoryの指定がない場合は、driverClassNameで指定したJDBCドライバの DataSource実装クラスが使用される。 よって、factoryなしで、JNDIの記述だけでは、プールが行われるとは限らない。 PostgreSQLの場合、付属のJDBCドライバでは、プールはされない。
591 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 11:57:10 ] >>588-589 ありがとうございます。やはり、と言うところですが 訳抜けと言う点は驚きました。
592 名前:デフォルトの名無しさん [2007/07/13(金) 14:14:10 ] JFreeChartで描画したグラフの上にかぶせるようにShapeを描画する事は可能でしょうか
593 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 14:40:21 ] >>592 可能
594 名前:592 [2007/07/13(金) 15:02:09 ] JFreeChartについてもう一点 axisを共有した異種チャートの混合表示も可能でしょうか
595 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 15:25:30 ] >>591 javadocでは普通、原文とサイトのチュートリアルよく読むのオヌヌメ
596 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 15:44:35 ] >>594 異種で共有ってのがよく分からないけど、それも出来たと思う 前使った時に5,6種類のグラフを重ねてプロットしてたはず
597 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 15:45:43 ] >>1 てsと
598 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 17:02:50 ] 計算についての質問です double test = 17.56; というのがあって、これの100倍の答え(1756)を出したいのですが、 計算すると、1755.9999999999998などという答えがでてきます。 どのようにすれば期待した答えがでてくるのでしょうか。 試したことは下記の2つでどちらも変な結果になりました System.out.println(test * 100.0); System.out.println(test * 100.0f);
599 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 17:19:33 ] >>598 BigDecimal test = new BigDecimal("17.56"); System.out.println(test.multiply(new BigDecimal(100)));
600 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 17:20:37 ] >598 System.out.println(Math.round(test*100));
601 名前:598 mailto:sage [2007/07/13(金) 17:39:48 ] >>599-600 ありがとうございました 期待通りの答えをだすことができました。 単純に100倍するというのは難しいことなんですね・・・勉強になりました。
602 名前:デフォルトの名無しさん [2007/07/13(金) 19:22:03 ] >>593 >>596 有難うございました、早速使ってみました なかなか優れものですねこれは
603 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 19:51:42 ] >>601 誤差がね あるから
604 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 19:52:03 ] >>598 Javaに限ったことじゃないけど、プログラムで小数を扱うのは難しい
605 名前:デフォルトの名無しさん [2007/07/13(金) 19:55:11 ] 電卓でもいえるけどね
606 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 20:26:47 ] 量子コンピューターになればいいんじゃないかな?
607 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 20:31:58 ] 量子コンピュータは二進数使わないのか?
608 名前:デフォルトの名無しさん [2007/07/13(金) 20:46:13 ] アナログコンピューターでOK
609 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 22:42:44 ] >>576 試したこと無いけど DatagramPacket.getSocketAddress().getAddress() って何が帰ってくるの?
610 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 00:04:40 ] >>600 適当すぎw 答えが2.6とかだったら3になるなw
611 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 16:47:50 ] switch文で○○以上の場合はこの処理をするっていうのはできますか?
612 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 17:40:17 ] >>611 とりうる値がかなり限られているなら○○以上の値を複数のcaseで羅列して挙げておけばいいが、 そういう条件判断は普通はif文で処理したほうがいいと思う。
613 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 18:39:38 ] >>611 int flag = 0; if( 10 <= x) flag = 1; switch flag case flag: // 処理 break; default: // 何もしない? でどうだ? switch文は使わないのがベター 大雑把な書き方は覚えているけど、詳細忘れたんで、テキトー xが10以上の時、switch文で処理を分岐できるぞ。 業務で書いたならばぶち殺すけどなwwww
614 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 18:55:18 ] >>611 できません
615 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 21:07:48 ] >>613 case 1:
616 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 22:37:48 ] >>613 caseに変数は使えない。リテラルのみ。 自信ない時は試してから書こうぜ。