[解決済み] QString:小数点以下2桁までの数値(末尾に0を付けない)。
2022-02-12 10:09:44
質問内容
このような分割があります。
number / 1000.0
96.0000000001のような答えが出ることもあれば、期待通りに除算ができることもあります。
小数点以下2桁までで、末尾にゼロをつけない数値にしたいのですが。
もし、それが 96.5500000001 と表示されるはずです。 96.55 .
もし、それが 96.4000000001 と表示されるはずです。 96.4
このように文字列をフォーマットすることは可能なのでしょうか?
ドキュメントを確認したところ、小数点以下の桁数を指定するための 'f' 引数が用意されていますが、この方法では末尾のゼロが残ります。 これは私が試したものです。
QString::number(number / 1000.0, 'f', 2)
しかし、これでは 96.4000000001 --> 96.40 ではなく 96.4
何か解決策はありますか?このようにフォーマットするにはどうすればよいのでしょうか?
どのように解決するのですか?
その ドキュメント は、何をすべきかについてかなり明確です。
<ブロッククオート引数のformatで精度も指定します。e', 'E', 'f'フォーマットの場合,精度は小数点以下の桁数を表す。g' と 'G' フォーマットの場合,精度は有効数字の最大桁数を表す(末尾の0は省略される)。
したがって、'g'または'G'フォーマットのいずれかを使用してください。
main.cpp
#include <QString>
#include <QDebug>
int main()
{
qDebug() << QString::number(96400.0000001 / 1000.0, 'g', 5);
qDebug() << QString::number(96550.0000001 / 1000.0, 'G', 5);
return 0;
}
main.pro
TEMPLATE = app
TARGET = main
QT = core
SOURCES += main.cpp
ビルドと実行
qmake && make && ./main
出力
"96.4"
"96.55"
関連
-
[解決済み】coutはstdのメンバではない
-
[解決済み】C-stringを使用すると警告が表示される。"ローカル変数に関連するスタックメモリのアドレスが返される"
-
[解決済み] クラスにデフォルトコンストラクタが存在しない。
-
[解決済み】IntelliSense:オブジェクトに、メンバー関数と互換性のない型修飾子がある
-
[解決済み】オブジェクト引数のない非静的メンバ関数の呼び出し コンパイラーエラー
-
[解決済み】CMakeエラー at CMakeLists.txt:30 (project)。CMAKE_C_COMPILER が見つかりませんでした。
-
[解決済み] 変数サイズのオブジェクトが初期化されないことがある c++
-
[解決済み】'std::cout'への未定義の参照
-
[解決済み] 浮動小数点以下2桁を表示するJavaScript
-
[解決済み】数値を2進数で表示(coutを使用)するには?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++エラー。アーキテクチャ x86_64 に対して未定義のシンボル
-
[解決済み】浮動小数点例外エラーが発生する: 8
-
[解決済み】「std::operator」で「operator<<」にマッチするものがない。
-
[解決済み】CMakeエラー at CMakeLists.txt:30 (project)。CMAKE_C_COMPILER が見つかりませんでした。
-
[解決済み】C++ - ステートメントがオーバーロードされた関数のアドレスを解決できない。
-
[解決済み] 数値定数の前にunqualified-idを付けて、数値を定義することを期待する。
-
[解決済み】Enterキーを押して続行する
-
[解決済み] to_string は std のメンバーではない、と g++ が言っている (mingw)
-
[解決済み】デバッグアサーションに失敗しました
-
[解決済み] 警告:暗黙の定数変換でのオーバーフロー