[C++]数字の桁の表記

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
カイリ
記事: 2
登録日時: 8年前

[C++]数字の桁の表記

#1

投稿記事 by カイリ » 8年前

プログラムを初めて三日目です
経験値テーブル作ってみたのですが
桁が100万超えたときに

コード:

経験値の値を入力してください。
1900000
[ 1.9e+06 ]の経験値獲得!
レベルアップ![ 2 ]
次のレベルまで[ 1.89999e+06 / 40 ]
という省略表記になるのですがこうならないようにすることは可能でしょうか。
それと、「ここもっとこうしたほうがいいよ」的なのあれば教えていただけると幸いです。

コード:

#include    <iostream>
using namespace std;
int main()
{
    int level,                                      //現在のレベル
        nextexp;                                    //次のレベルに必要な経験値
    double exp,                                     //コマンドで追加する経験値
        nextdbexp;                                  //次のレベルに必要な経験値詳細
    level = 1;                                      //初期レベル
    nextdbexp = 10;                                 //初期レベルからのレベルアップに必要な経験値
    cout << "経験値の値を入力してください。" << endl;
    cin >> exp;                                     //経験値入力
    nextexp = nextdbexp;                            //nextexpの小数点切捨て
    nextdbexp = nextdbexp - exp;                    //次のレベルまでの経験値-入力経験値
    cout << "[ " << exp << " ]の経験値獲得!" << endl;
    if (nextdbexp > 0)                              //レベルが上がらない場合
    {
        cout << "次のレベルまで[ " << exp
            << " / " << nextexp << " ]" << endl;
    }
    else                                            //レベルが上がる場合
    {
        while (nextdbexp <= 0)                      //次のレベルまでの経験値が+になるまで
        {
            level++;                                //レベル+1
            cout << "レベルアップ![ " << level << " ]" << endl;
            exp = nextdbexp * -1;       
            nextexp = nextexp * 2;                  //経験値テーブル計算↓
            nextdbexp = level * 30;
            nextdbexp = nextexp + nextdbexp;
            nextdbexp = nextdbexp / 2;              //経験値テーブル計算↑
            nextexp = nextdbexp;                    //nextexpの小数点切捨て
            if (level >= 100)
            {
                cout << "上限に達しました。" << endl;
                break;
            }
            cout << "次のレベルまで[ " << exp
            << " / " << nextdbexp << " ]" << endl;
            nextdbexp = nextdbexp - exp;            //次のレベルまでの経験値-入力経験値
        }
    }
    return 0;
        

}

かずま

Re: [C++]数字の桁の表記

#2

投稿記事 by かずま » 8年前

コード:

    fixed(cout).precision(0);
これを一度実行すると、それ以後の double の出力が
望み通りのものになるでしょう。

fixed(cout) は (cout << fixed) と書いてもいいし、
cout.precision(0); を別に書いてもいいでしょう。
cout << setprecision(0); と書くときは、
#include <iomanip> が必要です。

カイリ
記事: 2
登録日時: 8年前

Re: [C++]数字の桁の表記

#3

投稿記事 by カイリ » 8年前

ありがとうございます!無事表示の省略がなくなりました

閉鎖

“C言語何でも質問掲示板” へ戻る