[解決済み] 任意の有効桁数への丸め方
2023-06-26 05:49:29
質問
どのようにしたら を丸めることはできますか? を有効数字N桁に丸める方法を教えてください。
例えば、有効数字3桁に丸めたい場合、取りうる式を探しています。
1,239,451となり、1,240,000を返す。
12.1257とリターン12.1
.0681と入力すると、.0681を返します。
5 を指定して 5 を返す
当然ながら、アルゴリズムは3のNだけを処理するようにハードコードされるべきではありません(それはスタートでしょうが)。
どのように解決するのですか?
他の回答にある 12.100000000000001 のバグを取り除いた Java の同じコードです。
また、繰り返されたコードを削除し
power
を整数型に変更し、浮動小数点数の問題を回避しました。
n - d
が行われ、長い中間値をより明確にするために
バグの原因は、大きな数字と小さな数字を掛け合わせることでした。 代わりに似たような大きさの2つの数を割っています。
EDIT
より多くのバグを修正。 0だとNaNになってしまうので、チェックを追加。 関数が実際に負の数で動作するようにした(負の数の対数は複素数であるため、元のコードでは負の数を扱えない)。
public static double roundToSignificantFigures(double num, int n) {
if(num == 0) {
return 0;
}
final double d = Math.ceil(Math.log10(num < 0 ? -num: num));
final int power = n - (int) d;
final double magnitude = Math.pow(10, power);
final long shifted = Math.round(num*magnitude);
return shifted/magnitude;
}
関連
-
[解決済み] 簡単:T(n)=T(n-1)+nを反復法で解く。
-
[解決済み] Bogosort (a.k.a Monkey Sort)よりも悪いソートアルゴリズムはあるのか?[クローズド]
-
[解決済み] グラフの隣接リスト表現の空間複雑性
-
[解決済み] 最小ボトルネックスパニングツリーと最小スパニングツリーはどう違うのですか?
-
[解決済み] Javaで数値を小数点以下n桁に丸める方法
-
[解決済み] 簡単な面接問題が難しくなった:1~100の数字が与えられたとき、ちょうどk個の数字が欠けていることを見つけなさい。
-
[解決済み】画像処理。コカ・コーラ缶」認識のためのアルゴリズム改良
-
[解決済み】Rの小数点以下の桁数の書式設定
-
[解決済み] [解答】ある数字が与えられたとき、元の数字と全く同じ桁数の次の数字を求めよ。
-
[解決済み] ある問題がNP完全であることをどのように証明するか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Dijkstraのアルゴリズムが負の重みのエッジに対して機能しないのはなぜですか?
-
[解決済み】決定木(比較ソートアルゴリズム)の葉の最短の深さ)
-
[解決済み] 構造的再帰と生成的再帰はどのように違うのですか?
-
[解決済み] 最小スパニングツリーは負の重みを恐れているのか?
-
[解決済み] DFS-Forest Componentとは?
-
[解決済み] ビッグシータ記法の証明
-
[解決済み] T = {<M> | Mはwを受け入れるときはいつでも$w^R$を受け入れるTMである}とする。Tが決定不可能であることを示せ
-
[解決済み] キャッシュの無効化 - 一般的な解決策はありますか?
-
[解決済み] トライ式と基幹トライ式のデータ構造の違いは何ですか?
-
[解決済み] 旧経度+nmから新経度、新緯度を算出する。