問題タブ [number-formatting]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
4344 参照

java-me - J2ME - 数値形式

Java DecimalFormatと同じように、J2ME でパターンを使用して 10 進数をフォーマットする必要があります。

Format / NumberFormat / DecimalFormatを移植するオプションが表示されます。

すぐに使用できる実装またはライブラリを提案できますか?

ありがとう!

0 投票する
15 に答える
34409 参照

c# - Stack Overflowのようなフォーマット番号(Kサフィックスで数千に丸められます)

C#でSOのような数値をフォーマットする方法は?

10、、、、、..。_ 500_5k42k

0 投票する
2 に答える
4396 参照

gwt - 高精度の小数に関するGWTNumberFormatの問題

GWT 2.0を使用していますが、NumberFormatを使用してDoubleをフォーマットしようとすると、期待どおりの結果が得られません。

フォーマットされた文字列:0.02147484

ご覧のとおり、フォーマットされた値が間違っています(これはgwtショーケースで確認できます)。これは私が使用しているカスタムフォーマット(#。########)に関連していますか?それともこれはGWTフォーマッターのバグですか?これがバグである場合、誰かが回避策を見つけましたか?ありがとう。

0 投票する
2 に答える
947 参照

c# - int.ToString("D4"); を模倣する t-sql の効率的なアルゴリズム

テキスト形式の数値の先行ゼロの効率的な実装についてアドバイスをお願いします。

0 投票する
2 に答える
1127 参照

java - ユーザーがJFormattedTextFieldから見ているのと同じ値を取得する方法は?

NumberFormatterとを使用していますがJFormattedTextField.getValue()はユーザーが見ているのと同じ値を返しません。

入力文字列は NumberFormats parse-method を使用して解析されていると思いますNumberFormat.getNumberInstance();。実際の Locale から Numberformat を取得します。だから私は簡単にそれを拡張して独自の解析メソッドを書くことができるとは思わない?

では、ユーザーが を入力1234.487 すると: がgetValue()返されます 1234.487が、ユーザーは表示されます。1,234.49

を使用した別の例NumberFormat.getCurrencyInstance();。ユーザーが入力1234.487するgetValue()と返さ1234.487れますが、ユーザーが表示されます$1,234.49

代わりに、フォーマッターが丸めずに値をフォーマットできない場合に ParseException を生成する必要があります。ユーザー4.35b6が. 4.35_ 4.35_ _

これが私が試したコードです:

ユーザーが見ているのと同じ値を取得する方法は?

0 投票する
1 に答える
1132 参照

java - java ローカライズされた NumberFormat から正規表現を生成する

ロケール構成のJava NumberFormatでフォーマットされた値と一致する正規表現を生成するクリーンな方法はありますか? またはそうするいくつかのライブラリ?

これは Web ベースのアプリにあり、数値フィールドの JavaScript 検証のために正規表現を jsp ページに渡したいと考えています。ロケールはユーザーごとに異なります。数値形式ごとに特定の正規表現を手作業でコーディングする必要はありません。

0 投票する
4 に答える
29415 参照

c# - .NET アプリケーションまたはスレッドだけに CultureInfo を設定することはできますか?

GUI や UI を持たない C# で記述されたアプリケーションがありますが、代わりに別のアプリケーション (XML など) によって解析されるファイルを記述します。

CultureInfo の NumberDecimalSeparator がコンマに設定されている顧客がいます。これにより、浮動小数点数で解析エラーが発生します (PI は3,1415になります)。

すべてのスレッドに対して、CultureInfo をアプリケーション内でグローバルに設定する方法が必要です。私はもう試した:

  1. CurrentThread.CurrentCultureをMain()の最初の行として設定する (明らかに) 慣習的なアプローチですが、リセットされるようです。
  2. http://www.codeproject.com/KB/cs/Change_App_Culture.aspxのバリエーション/拡張
  3. アプリケーションで明示的に作成されたスレッドで同じ (#1) を実行します。

また、明示的な書式設定を使用するように変更することはできません (15 万行以上、ほとんどが元従業員によって書かれています)。

[編集] アプリケーションはソケットにバインドし、専用クライアントからの要求を処理します。リクエストのタイプに応じて、さまざまなハンドラ クラスが生成されます。

申し訳ありませんが、最初に投稿したとき、明示的に生成されたすべてのハンドラーでもこれを行ったことを #1 で明確にする必要がありました。

問題の原因となっているスレッド/ハンドラを見逃していたことが判明しました。 したがって、アプリケーションは現在正常に動作していますが、カルチャをすべてのスレッドに設定できるかどうかについては疑問が残ります。

すべてのスレッドを反復処理できれば、問題も解決します。そう:

現在のプロセスですべてのThreadオブジェクト ( ProcessThreadではない)を取得するにはどうすればよいですか?

0 投票する
3 に答える
10977 参照

c# - .NET decimal.ToString(string)がゼロから四捨五入され、言語仕様と明らかに矛盾しているのはなぜですか?

decimalC#では、デフォルトでの丸めは。を使用していることがわかりますMidpointRounding.ToEven。これは予想されることであり、C#仕様で規定されています。ただし、次の場合:

  • Adecimal dVal
  • string sFmtに渡されるとdVal.ToString(sFmt)、の丸められたバージョンを含む文字列になる形式dVal

decimal.ToString(string)...を使用して丸められた値を返すことは明らかですMidpointRounding.AwayFromZero。これは、C#仕様と直接矛盾しているように見えます。

私の質問はこれです:これが事実である正当な理由がありますか?それとも、これは言語の単なる矛盾ですか?

decimal.ToString(string)以下に、参考のために、値の配列内のすべての値について、さまざまな丸め演算結果と演算結果をコンソールに書き込むコードをいくつか含めましたdecimal。実際の出力は埋め込まれています。その後、タイプのC#言語仕様セクションから関連する段落を含めましたdecimal

サンプルコード:


C#言語仕様のセクション4.1.7の段落(「10進型」)(完全な仕様はここ(.doc)で入手してください):

10進数型の値に対する演算の結果は、正確な結果(各演算子に対して定義されたスケールを保持)を計算し、表現に合うように丸めた結果です。結果は、最も近い表現可能な値に丸められ、結果が2つの表現可能な値に等しく近い場合は、最下位桁の位置に偶数がある値に丸められます(これは「バンカーの丸め」と呼ばれます)。ゼロの結果は常に0の符号と0のスケールを持ちます。

彼らがこの段落で考慮していなかったかもしれないことは容易に理解できますToString(string)が、私はそれがこの説明に当てはまると思う傾向があります。

0 投票する
3 に答える
4172 参照

asp.net - 固定桁数を表示するための浮動小数点の String.Format()?

たとえば、小数点以下 4 桁を表示したい場合、正しい形式は何ですか?

0 投票する
2 に答える
2393 参照

java - NumberFormat Java の奇妙な動作

str という文字列変数を解析する次のコードがあります。

str が数値ではない場合にスローされる例外をキャッチして、検証したいだけです。私が抱えている問題は、期待される ParseException が常にスローされるとは限らないことです。文字列 str が数字で始まり、その後文字である場合、文字列の最初の文字を取得し、それらを数字として解析するようです。

例えば:

  • str="a10" の場合、ParseException がスローされます
  • str="10a" の場合、例外はスローされず、number=10

Double.parseDouble(str) は使用できません。str には 1,000.98 のようなコンマとポイントを含めることができ、この形式はこのメソッドでは認識されないためです。

なぜこうなった?他の方法で検証できますか?ありがとう