Thomas Meinike : Zehnerpotenzen

Beitrag lesen

Hallo,

Kann ich das irgendwie umgehen, vielleicht auch rechnerisch? Ich möchte nämlich die vollständige Zahl mit all seinen 30 Stellen ausgeben.

Suche nach einer JS-Bibliothek zum Rechnen mit BCD-Arithmetik (BCD = Binary Coded Decimals) oder verwende die PHP zur Verfuegung stehenden BCMath-Funktionen wie bcadd(), bcmul() usw.

Aus einem JavaScript-Code heraus bietet sich die Ansprache via AJAX-Aufruf an, als Beispiel mal mit bcmul() umgesetzt.

bcmul.html:

  
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">  
<head>  
<title>Test by TM 02/06</title>  
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />  
<script type="text/javascript">
  
/* <![CDATA[ */  
  
var req=null;  
  
function bcmul(in1,in2)  
{  
  var url="bcmul.php?in1="+in1+"&in2="+in2;  
  if(window.XMLHttpRequest)req=new XMLHttpRequest();  
  else if(window.ActiveXObject)req=new ActiveXObject("Microsoft.XMLHTTP");  
  
  if(req)  
  {  
    req.onreadystatechange=callback;  
    req.open("GET",url,true);  
    req.send(null);  
  }  
}  
  
function callback()  
{  
  if(req.readyState==4) // complete  
  {  
    if(req.status==200) // OK  
    {  
      var result=req.responseText;  
      if(result)document.forms[0].out.value=result;  
      else alert("Problem aufgetreten!\nStatus: "+req.statusText);  
    }  
  }  
}  
  
/* ]]> */
  
</script>  
</head>  
<body>  
<h1>bcmul() mit JS + PHP</h1>  
<form action="">  
in1: <input type="text" name="in1" size="100" value="123456789012345678901234567890" /><br />  
in2: <input type="text" name="in2" size="100" value="987654321098765432109876543210" /><br />  
out: <input type="text" name="out" size="100" /><br />  
<input type="button" value="Rechnen" onclick="bcmul(this.form.in1.value,this.form.in2.value)" />  
</form>  
</body>  
</html>

mit bcmul.php:

  
<?php  
  
  print bcmul($_GET["in1"],$_GET["in2"]);  
  
?>

Beispielergebnis: 121932631137021795226185032733622923332237463801111263526900

MfG, Thomas