• ベストアンサー

少数50桁以上を表示するには

shin_5696の回答

  • shin_5696
  • ベストアンサー率39% (21/53)
回答No.7

こんにちは、ソースを拝見しましたが あまり自分の言ったことが伝わっていなかったようですね^^; -------------足し算サンプルコード------------------ /* 全ての変数をBigDecimalに変換(有効桁数が50桁のデータで) */ BigDecimal bd = new BigDecimal("0.00000・・・"); BigDecimal bd2 = new BigDecimal("0.00000・・・"); /* 変換後のBigDecimalどうしで演算 */ bd = bd.add(bd2); /* 表示 */ System.out.println(bd); --------------------------------------------------- という意味だったのですが・・・ しかし、この場合すこし難しい気がします。 なぜかというと、 ・問題1 精度 この中で使っている「Math.pi」自体がDouble精度のため 14~5桁の精度しか持たないのです。 そのため、この数値を用いて計算しても 50桁の精度の結果を得ることはできません。 ・問題2 演算関数 計算に「Math.sin」を使っていますが、 この計算自体double型しか返せません。 また、BigDecimalにこれに相当する演算方法はありません。 有効桁数50桁で表示する際に用いる方法はBigDecimalしか 思いつきませんが、 この場合BigDecimalでも用件を満たすことができそうにありません。 課題であるならば、前提条件と満たすべき課題を 明確に教えていただけますか? #どこかで認識違いがあるかも??

Shangrila
質問者

お礼

回答ありがとうございます。 返答が遅れて申し訳ありません。 BigDecimal同士ですと、50桁の計算も行えるようですが。 Math.PTを使うため、どうしてもdoubleが必要不可欠になってしまうみたいです。 課題内容ですが 「円周率πを50桁以上表示するプログラム作成」 です。

関連するQ&A

  • エクセルで小数点以下3桁を四捨五入して、小数点以下1桁を表示する方法

    エクセル2003を使用しています。 計算式から出た結果に対して、小数点以下3桁を四捨五入して、小数点以下2桁ではなく、1桁を表示したいです。 例えば、計算式の結果、 1.145 の場合、普通に四捨五入すると 小数点以下1桁なら、1.1 小数点以下2桁なら、1.15 となってしまいます。 これを小数点以下3桁を四捨五入して、小数点以下1桁表示の1.2と表示させたいのですが、可能でしょうか?

  • 少数点以下2桁以上の入力でエラーメッセージを表示するには

    データの入力規則で、少数点以下2桁以上の数値が入力されたらエラーメッセージが表示されるようにできないでしょうか? (小数点以下1桁[3.2→OK]  小数点以下2桁[3.26→エラーメッセージ]) または、条件付き書式で上記条件でセルの色を変えることはできますか? よろしくお願いします。

  • エクセルで整数表示と少数表示を混在させたい

    お世話になります。 集計用のファイルを作っています。 整数と、小数点以下1桁、2桁の数値が出てきます。 書式設定で小数点以下2桁まで表示するようにしたら、整数や小数点以下1桁の数値まで120.00とか25.50と表示されてしまい、見にくくなってしまいました。 小数点以下に0がつく場合は無視して、それぞれ120、25.5、3.25のように必要な桁数だけ表示させたいのですが、どうしたらよいでしょうか。

  • 電卓の表示(いつもは0桁、割り切れないとき2桁)

    キャノンのHS-1220TUGという電卓使ってます。 計算後の答えなんですが、割り切れないときだけ小数点2桁表示(3桁目を四捨五入)で、それ以外は0桁に表示するやり方ありませんか? いつもはFで四捨五入してるんですが、これだといつも小数点2桁まで表示されちゃうから見づらいんです。

  • 18桁の割り算をしたい

    それほど多くはないですが、今の仕事で分母が18桁、分子が16桁の分数を小数に計算をしなくてはならなくなりました。(小数点以下5桁ほど) 手持ちの計算機ではできず困っています。 何か、計算できるソフトのようなものがあれば教えて下さい。

  • DoubleからBigDecimalへの変更の仕方

    以下のソースをdouble使用箇所をBigDecimalに変更して行いたいのですが・・・ public String test( String str1, String str2){ // 計算方法: // str1 / str2 の小数点第3位切り上げ後に100掛け // 割り算を行う double d = Double.valueOf(str1).doubleValue()/Double.valueOf(str2).doubleValue(); // 掛け算を行う d = d*100; // 小数点第1位切り上げる if (d >= 10.88) { d = 11; } DecimalFormat ff = new DecimalFormat("#0.0"); return ff.format(d); }

    • ベストアンサー
    • Java
  • 1セルに6桁以上入力できない。小数点以下の表示が00になってしまう。

    エクセルの1つのセルに1,000,000と入力するも1,000となってしまいます。 数式と値をクリアにしても、表示形式を標準や数値や文字列に設定しても下3桁が入りません。 それと小数点第2位まで計算したいのに、小数点第2位は.00なってしまいます。 それと小数点以下を切り捨てで表示させたいのに、四捨五入になってしまいます。

  • Accessの桁区切りについて教えてください。

    アクセスのレポートの金額に、桁区切りのカンマを付けたいと思っています。 プロパティの書式を通貨にすると¥マークがついてしまいます。 合計は付いてもいいのですが、内訳には¥マークを付かないように桁区切りだけにしたいのです。 そのため、書式に『###,##0』としました。 できましたが、小数点以下が表示されません。 小数点を表示したいので『###,##0.###』としたら、『59,180.000』となってしまいます。 小数点の指定を自動から3桁表示に変えましたが、うまくいきません。 教えていただきたい内容としては、 ・金額の表示に桁区切りのカンマを付けたい。 ・でも¥マークは付けたくない。 ・小数点以下該当があるもののみ3桁まで表示させたいが(5,500.365)、  小数点以下がないものは小数点以下は表示させたくない(5,400)。 ぜひともアクセスを使いこなしている方、お教えください。

  • 計算する度にBigDecimalオブジェクト作成?

    javaのDouble型の足し算をするには、BigDecimalを使わなければ 正確な数値が得られない、ということで使用したのですが、 毎回、小数点の足し算をする度に、 負荷のかかるnew宣言でBigDecimalのインスタンスを作りaddメソッドで計算するというはどうも非効率に思ってしまうのです、、; javaでの小数点の足し算は皆さん通常どうやっているのでしょうか?

    • ベストアンサー
    • Java
  • 少数桁の指定

    VBでテキストボックスに入力された数値を使った計算結果をラベルに表示するといったことをしているのですが、そのときに少数桁をそろえたいのですが、どうすればいいのでしょうか? 例えば、答えが『0.5』の場合、『0.5000』といったように少数点以下の桁数を全ての答えでそろえたいのです。 何か関数があった気がするのですが、VBの本を読んでもわかりませんでした。 よろしくお願いします。