二重丸を有効数字xにする
2023-08-22 06:12:25
質問
double(234.004223)などがあった場合、これをC#で有効数字x桁に丸めたいのですが、可能でしょうか?
今のところ、小数点以下x桁に丸める方法しか見つかりませんが、これは単に数値に0があると精度が落ちるだけです。
例えば、0.086を小数点以下1桁にすると0.1になりますが、0.08のままであってほしいのです。
どのように解決するのですか?
フレームワークには、有効数字の数に丸める(または切り捨てる)ための組み込み関数がありません。 しかし、これを行うことができる 1 つの方法は、最初の有効桁が小数点の直後になるように数値をスケーリングし、丸め (または切り捨て)、それからスケーリングバックすることです。 次のコードでうまくいくはずです。
static double RoundToSignificantDigits(this double d, int digits){
if(d == 0)
return 0;
double scale = Math.Pow(10, Math.Floor(Math.Log10(Math.Abs(d))) + 1);
return scale * Math.Round(d / scale, digits);
}
もし、あなたの例のように、どうしても切り捨てたいのであれば
static double TruncateToSignificantDigits(this double d, int digits){
if(d == 0)
return 0;
double scale = Math.Pow(10, Math.Floor(Math.Log10(Math.Abs(d))) + 1 - digits);
return scale * Math.Truncate(d / scale);
}
関連
-
[解決済み】WebForms UnobtrusiveValidationModeは、jqueryのScriptResourceMappingを必要とする
-
[解決済み】プロジェクトビルド時のエラー。エディタでスクリプトにコンパイルエラーがあるため、Playerのビルドにエラーが発生する
-
[解決済み】非静的メソッドはターゲットを必要とする
-
[解決済み] Pythonで数値を有効数字に丸める方法
-
[解決済み] IDisposable インターフェースの正しい使用法
-
[解決済み] Javaで数値を小数点以下n桁に丸める方法
-
[解決済み] 簡単な面接問題が難しくなった:1~100の数字が与えられたとき、ちょうどk個の数字が欠けていることを見つけなさい。
-
[解決済み】Rの小数点以下の桁数の書式設定
-
[解決済み】BigDecimalの小数点以下が常に2桁になるように丸める。
-
[解決済み] 任意の有効桁数への丸め方
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 保護レベルによりアクセス不能になりました。
-
[解決済み】ASP.NET Core Dependency Injectionのエラーです。アクティブ化しようとしているときに、タイプのサービスを解決できません。
-
[解決済み】ソケットのアドレス(プロトコル/ネットワークアドレス/ポート)は、通常1つしか使用できない?
-
[解決済み】バックスラッシュを含むパス文字列のエスケープシーケンスが認識されない件
-
[解決済み】Socket.Selectがエラー "An operation was attempted on something that is not a socket" を返す。
-
[解決済み】EF 5 Enable-Migrations : アセンブリにコンテキストタイプが見つかりませんでした
-
[解決済み] EntityTypeにキーが定義されていないエラー
-
[解決済み】「...は'型'であり、与えられたコンテキストでは有効ではありません」を解決するにはどうすればよいですか?(C#)
-
[解決済み】画像のペイントにTextureBrushを使用する方法
-
[解決済み】なぜ10進数は2進数で正確に表現できないのですか?