Hallo Leutz,
also wenn ich die Zahl 701139700402006060818015%97 bekomme ich 38 anstatt
laut Taschenrechner 1 wieso?
Vielleicht kann einer von euch mir da weiterhelfen
Hallo Leutz,
also wenn ich die Zahl 701139700402006060818015%97 bekomme ich 38 anstatt
laut Taschenrechner 1 wieso?
Vielleicht kann einer von euch mir da weiterhelfen
Moien
wieso?
JS benutzt für alles float-Werte, auch für ints. Ints werden deshalb nur in einem gewissen Bereich (-+ 9007199254740992) exakt gerechnet. Darüber kann man weiter mit ints rechnen, aber die Resultate sind nicht mehr exakt.
cu
Hallo
also wenn ich die Zahl 701139700402006060818015%97 bekomme ich
38 anstatt
laut Taschenrechner 1 wieso?
Vielleicht kann einer von euch mir da weiterhelfen
Was glaubst Du denn, was 701139700402006060818015 für
eine Zahl ist? Das ist 10^23 oder so. Dafür brauchst
Du eine Funktionsbibliothek für Zahlen beliebiger
Länge. Wie pumpkin schon sagte, sind solche großen
Zahlen auch in der Gleitkommerepräsentation ungenau.
Modulo mit BigInt
function testmodulo() {
var num = ‚701139700402006060818015‘
var bign = str2bigInt(num, 10)
var imod = 97
var result = modInt(bign, imod)
document.getElementById(‚hier‘).innerHTML = num + ’ % ’ + imod + ’ = ’ + result
}
window.onload = testmodulo;
==> http://www.leemon.com/crypto/BigInt.js
Grüße
CMБ
Vielen Dank genau das hab ich gesucht, ausserdem ist
mir das auch klar das diese Zahl kein integer ist, aber nichts
desto trotz muss ich das problem irgentwie lösen
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]