トップページ > 過去ログ > 記事閲覧
大きい数字の扱い方と表示方法
名前:kaze 日時: 2012/01/31 18:33

DXライブラリで経営SLGを作ろうとしているのですが、 資金を、9999億9999万9999円という桁と表示にした いのですが、本を読んでも検索しても実装の仕方が わかりません。 考え方のヒントとなる物を教えていただけると幸い です。何卒よろしくお願いします。

Page: 1 |

Re: 大きい数字の扱い方と表示方法 ( No.1 )
名前:南山まさかず 日時:2012/01/31 18:50

 数字を文字列として扱うのがよろしいかと思いま す。  もし多倍長の演算をしょっちゅう使うのであれ ば、多倍長演算ライブラリを作成して、多倍長の数 を文字列に変換する処理も作成すると良いかと思い ます。  多倍長演算を行うのであれば、それ専用のライブ ラリも存在します。  自作するのであれば、以下のページを参考にする とよいかと思います。 ttp://homepage2.nifty.com/m_kamada/math/fftmul.htm 表示には、std::stringを使用するのがお勧めです。 
Re: 大きい数字の扱い方と表示方法 ( No.2 )
名前:いっち 日時:2012/01/31 20:56

ウィンドウズ環境でしたら LONGLONG を使えば良いと思います。 //- 以下、テストコード -// #include "DxLib.h" int WINAPI WinMain( HINSTANCE, HINSTANCE, LPSTR, int ) { ChangeWindowMode( TRUE ); SetWindowText( "DxLib:" DXLIB_VERSION_STR ); if ( DxLib_Init( ) == -1 ) return -1; int white = GetColor( 255, 255, 255 ); LONGLONG n = 314159265358979ll; SetDrawScreen( DX_SCREEN_BACK ); while ( ProcessMessage( ) == 0 && CheckHitKey( KEY_INPUT_ESCAPE ) == 0 ) { ClearDrawScreen( ); DrawFormatString( 0, 0, white, "%lld", n ); DrawFormatString( 0, 16, white, "%lld兆%lld億%lld万%lld円", n / 1000000000000ll, n / 100000000 % 10000, n / 10000 % 10000, n % 10000 ); ScreenFlip( ); } DxLib_End( ); return 0; }
Re: 大きい数字の扱い方と表示方法 ( No.3 )
名前:kaze 日時:2012/01/31 22:04

南山まさかずさん、いっちさん 迅速なレスありがとうございます。 おかげさまでゲーム内で希望する桁、希望する表現を 実現する事ができました。 LONGLONGも試したつもりだったのですが、常に%dとい う誤った記述をしていた為、全く試した事にすらなっ ていない状況だった事に漸く気づきました。 基礎の部分をもう一度見直していきたいと思います。 本当に助かりました、ありがとうございました。

Page: 1 |