理論
番号の名前
ロシア語では、1〜9(いわゆる単位 )および10〜20(単位の2行目)の番号には個別の名前があります。 20の後、個々の名前は数十個になり、ユニットのカテゴリから数十個のカテゴリ番号を名前に追加することで番号が形成されます。
例:
- 5-5
- 17-17
- 23-23
- 48-48
数百には数十と1が含まれ、 数千には上記の名前がすべて含まれています。 したがって、番号の順序が大きくなると、つまり、新しい順序にはそれぞれ以前の順序がすべて含まれます。
女性および男性の性別順序名
次の機能があります。 100未満の数を形成する場合、問題はありませんが、大量の資本に相当する数を形成する場合、数百、数十、単位、つまり数千、数百万などを示す言葉があります。
数字には次のようなオプションがあります。
- 千
- 百万
- 200万
- 二千
- 五千
など
ルールは次のとおりです。
- 女性の注文の名前については、1と2( one 、 two )を変更する必要があります。
- 両方の属について、番号1、2から4のグループ、さらに20のグループ(11から19のユニットの2行目を含む)のオーダー名の末尾は、異なる方法で傾斜しています。
例:
- 1(千) a
- 2-3-4千
- 5-19千
- 100万
- 2-3-4百万a
- 500万〜2000万秒
これらの機能を知っていれば、資本数ジェネレーターのロジックを作成できます。
クラス
番号生成メカニズムは次のように機能します。
- 入力で数値を受け取った後、数値のカテゴリ(数百万、数千以下)を決定します。
- 注文ごとに、数百、数十、および単位を生成し、最後に注文の名前を追加します。
そして、C ++クラスのPropisが生まれました 。 出力のdouble値から、100分の1の精度で大文字の値と数値の通貨(ある場合)を含む文字列が取得されます。 最大10億の数値の生成を実装し、必要に応じて、数十億以上のサポートを簡単に行うことができます。 標準のcmathおよびstd ::文字列ライブラリのみに依存します。
C ++コードでの使用例:
Propis *propis = new Propis; double value = 345.12; // std::string resultString = propis->conv(value, Propis::Dollar); // " , "
iOSプログラムでの使用例:
- (IBAction)valueChanged:(UITextField *)sender { Propis propis; double value = [sender.text doubleValue]; std::string stdResultString = propis.conv(value, Propis::NoCurrency); NSString *resultString = [NSString stringWithUTF8String:stdResultString.c_str()]; self.resultView.text = resultString; }
クラスソースコードリポジトリはこちらです。 誰かが重宝してくれたら嬉しいです。