0

22 文字の長さの整数を検証する必要があります。その数を割り、商と残りの占いを得る必要があります。しかし、モジュロ関数に送信すると、7.04406000774059e + 21が返されます

labas = modulo(7044060007740589212932, 97);
function modulo (divident, divisor){
alert(divident);
}
4

2 に答える 2

1

jsで大きな数を処理するためのライブラリがいくつかあります。

于 2013-03-07T11:28:37.923 に答える
0

割る(「神」ではない)と残り(「悪い部分」ではない)を意味していると思います。
変なサイコロを振って乱数 (8233) を取得しました。これをいくつかの例で使用します。
* 8233 を 8 で割った余りは 1 8233 = (8 * 1029) + 1
* 8233 を 9 で割った余りは 7 8233 = (9 * 914) + 7
* 8233 を 10 で割った余りは 3 8233 = (10 * 823) + 3
* 8233 を 11 で割った余りは5.8233 = (11 * 748) + 5

あなたの質問に答えるには:
JavaScript で数字を扱うときは、最初の 15 桁または 16 桁だけが有効であることを覚えておく必要があります。数値の桁数が多い場合、通常、結果は正確ではなくなります。
あなたの例では、この番号を使用しています: 7044060007740589212932 JavaScript はその番号を正確に処理できません。それができる最善のことは7044060007740589735936523004高すぎることです。しかし、あなたは望ん7044060007740589735936でいません7044060007740589212932
回避策は次のとおりです。数字としてではなく、文字列
として番号を保持してください。 次に、文字列を真ん中で 2 つの部分に分けます。これで 、それぞれ 11 桁の文字列が 2 つできました。 次に、これを行います:番号を取得します番号を取得します
"7044060007740589212932"

"70440600077""40589212932"


parseInt("70440600077", 10)70440600077
(70440600077 % 97)36
(97 * 726191753) + 36 = 70440600077
次に、これを実行して ください36:
(36 + "40589212932")gets you the string "3640589212932"
(数字と文字列を足すと文字列連結が行われます) parseInt("3640589212932", 10)gets you number 3640589212932 (3640589212932 % 97)gets you number が得られます097 * 37531847556 = 3640589212932正確に注意してください。

72619175300000000000 * 97 =  7044060004100000000000
         37531847556 * 97 =           3640589212932
====================         ======================
72619175337531847556 * 97 =  7044060007740589212932

そして、そこに行きます。

于 2016-12-12T03:29:38.687 に答える