• ベストアンサー

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

BLUEPIXYの回答

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.6

#5補足>RoundingMode.HALF_UPは解決できません import java.math.RoundingMode; しないとRoundingModeの定数は使えませんです。 #5のリンク先見せて貰いましたけど、 単に、doubleの値をBigDecimalにしているだけなので、 #4>無限まで続いている数値になります と言われているようなことはありません。 >d = Math.PI; も >pi = n * Math.sin(Math.PI / n); も 単にdoubleの範囲で計算されていて、 その後 bd2 = new BigDecimal(pi); bd2 = bd2.setScale(60); としたとしても、有効桁は、setScaleで変更できますけども、 doubleの精度しかありません。 (多くの桁を表示させたとしても、単に表現誤差を表示しているに過ぎません) もし、計算の目的が円周率を50桁求めることだとしたら、 doubleで計算してBigDecimalにするのではなくて、 初めから、BigDecimalで級数などによって計算しなければいけません。

Shangrila
質問者

お礼

回答ありがとうございます。 返答が遅くなり申し訳ありません。 >import java.math.RoundingMode; これも足しましたが、解決できませんと出てしまったのです。 >doubleの精度しかありません。 確かに、d = Math.PI;もpi = n * Math.sin(Math.PI / n);も17,18桁以降は数値が違ってきていました。 >初めから、BigDecimalで級数などによって計算しなければいけません。 これをしたかったのですが、やり方がわからずにできませんでした。 Math.PTを使う時点でdoubleじゃなければダメみたいで。。

関連する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の本を読んでもわかりませんでした。 よろしくお願いします。