問題タブ [decimalformat]
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.
java - Java オペランドの異なる一貫性
異なる表現間で実行可能な算術演算に関して、従うべきルール ステートメントがあるかどうか知っていますか? 例:7
28152529 が出力されます。
結果 (c) は、2 つのオペランド a と b の加算の 10 進数表現です。
10 進形式とは異なる特定の表現形式で結果が必要な場合はどうすればよいですか?
java - DecimalFormatと固定小数点数の丸め
を使用してDecimalFormat
いるときに、固定小数点パターンで数値を丸めるときの動作に戸惑いました。より具体的にするために:
このスニペットの出力は次のとおりです。
最初の出力行から、実際の値がと( )の中間点を下回っていることがわかります。それにもかかわらず、引数が指定された場合、値は切り上げられます。2082809.08058973
2082809.08058974
...49...
DecimalFormat
double
その他の値は切り捨てられます。
これはすべての場合に発生するわけではありません。
aのフォーマットされた文字列は、問題の実際の数学的値ではなく、の線に沿って生成された不正確な10進値に基づいて、半偶数丸めdouble
を使用して丸められているように見えます。フォーマットされた精度がタイプによって提供される精度に非常に近い(またはそれ以上)場合、物事はややランダムになり始めます。Double.toString()
double
double
上記のすべてのケースで、対応するフォーマットをフォーマットするBigDecimal
と、期待どおりに丸めが実行されるようです。
DecimalFormat
この場合の適切な動作を説明する仕様を見つけることができませんでした。
この動作はどこかに文書化されていますか?
正確さの観点から、実際の数学的値を四捨五入することは望ましいことではないでしょうか。
書く人
1.0...35
は(素朴に?)それが丸められることを期待するだろうと理解しています1.0...4
が1.0...35
、Javaで利用可能なプリミティブデータ型では表現できないかもしれません...
編集:
オラクルにレポートを提出しました。この問題を修正または明確化できることを願っています。
iphone - 不要な「0」入力を表示
電卓を作成していますが、不要な0を表示する際に問題が発生しました(表示されていないので、表示したいのですが)。
現在の例は次のとおりです。[電卓画面を表します]
【空白電卓画面】
ユーザーが「4」を押す
[4]
ユーザーが「。」を押す
[4]
ユーザーが「0」を押す
[4]
ユーザーが「0」を押す
[4]
ユーザーが「5」を押す
[4.005]
代わりに、次のようにします。
【空白電卓画面】
ユーザーが「4」を押す
[4]
ユーザーが「。」を押す
[4.]
ユーザーが「0」を押す
[4.0]
ユーザーが「0」を押す
[4.00]
ユーザーが「5」を押す
[4.005]
以下に示すように、数値フォーマッターを使用しています...
私は自分の番号に電話をかけるために以下を使用します...
ありがとう!
java - Javaで常にゼロ以外の15桁を印刷するにはどうすればよいですか?
たとえば、Doubleの値があるとします1.23456789123456
。この数値にさまざまな10の累乗を掛けて、出力を次のように表示できるようにしたいと思います。
if ... thenステートメントを使用せずにJavaでこれを行う方法はありますか?10のさまざまな累乗に必要な小数点以下の精度の変化を処理しますか?
java - 小数点記号付きの数値/文字列のフォーマット
で数値をフォーマットしようとしていますDecimalFormat
。しかし、数値をフォーマットしたいのですが、それは次のようなものです
しかし、10 進形式のルールに応じて、1,234.0
または1,234.00
これを行うにはどうすればよいですか?
java - 小数を変更せずにコンマ (区切り記号) を数値に追加しますか?
文字列をフォーマットして、3 桁のグループの間にコンマを追加しようとしています
例えば:
私は DecimalFormat でそれを行う方法を理解しようとしていますが、この時点まで、非常に複雑に見える独自のスクリプトを使用しています。# を使用すると末尾のゼロが非表示になり、 0 を使用すると数値に追加されます。
これは私が今試していることです:
簡単だと思いますが、どうすればいいのかわかりません。私は DecimalFormat でそれを行う必要はありません。それがより簡単な方法だと思っただけです。小数を変更せずにカンマを追加するにはどうすればよいですか?
java - 10進形式への変換中のエラー
こんにちは、私はgpsの場所で作業しているので、座標を取得しています。今必要なのは、それらの座標をWebサービスに渡して、データベースに保存することです。しかし、適切な方法で保存するのに問題があります。取得したデータがデータベースに対して大きすぎると思います。そのため、座標を10進形式に変換しようとしています。コードにDecimaFormatメソッドを挿入すると、エラーが発生します。助けていただけませんか。
これらはエラーです:
そしてこれらは私のコードです(特に受け渡しプロセスとDecimalFormatメソッド):
java - 整数への特定の書式設定を行うには支援が必要です (java)
さて、私はラジオ番組に取り組んでいます。現在、ラジオ周波数は次のような整数です。107900、87900。
そのような数値を次のような文字列に変換する必要があります。
107.9、87.9
私は DecimalFormat で遊んでいますが、成功していません。ヒントやヒントをいただければ幸いです。
ここに私が試したいくつかのことがあります、
ありがとう!
java - 10進数形式を使用して電話番号を表示する方法
こんにちは、 DecimalFormatを使用して表示したいと思います。
8392472
なので
839 24 72
私が試してみました
私も試してみました"### ## ##"
java - ロケールなしで数値をフォーマットする
ユーザーは GUI でファイル出力形式を指定できます。特に、彼は数値形式を定義できます。最初のアイデアは、DecimalFormat で使用できる形式を彼に指定させることでしたが、DecimalFormat には、私のユースケースにとって少なくとも 2 つの主な欠点があります。
- ユーザーのロケールを使用するため、##.## は「.」を変換します。ドイツの「、」に。
- カンマの前後の数字に違いはないので、12.50 から 1250 にフォーマットすることはできません。私のユースケースでも必要です。
StringFormat もこれを行うことはできません。したがって、私の質問は、この問題を既に処理しているライブラリを知っているかどうか、または単純なフォーマッタを自分でプログラムする必要があるかどうかです。