php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 16.10.2004, 14:39  
Gast
 
Beiträge: n/a
Standard 8.1E+57 als ganze Zahl darstellen.

Hi

Wie mans im Topic schon erkennen kann versuche ich 8.1E+57 als ganze Zahl darzustellen. Durch folgende Rechnung komme ich auf dieses Ergebnis 8.1E+57.

81090640250441044102501960250810225025028902560289 02501690
-
09064025044104410250196025081022502502890256028902 501690
=
8.1E+57

Was es bedeutet ist klar *g* Ich brauche es aber als ganze Zahl in einem String *g*. Schonma danke an alle die Ideen dazu haben.

PS: Für Fehler wird nicht gehaftet .

MfG

Dyvor
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 16.10.2004, 18:56  
Erfahrener Benutzer
 
Registriert seit: 19.06.2004
Beiträge: 665
konsti
Standard

ist doch eine wunderbare zahl!
sonst habe ich nur folgende idee (kann fehler enthalten!)
PHP-Code:
<?php
$number 
'8.1E+57';
//oder: $number = strval(8.1E+57);
$parts           preg_split('/(.|(E\+))/'$number);
$ganzzahl      $parts[1];
$nachkomma $parts[2];
$e                 $parts[3];
$e                -= strlen($nachkomma);
$zahl             $ganzzahl.$nachkomma;
for (
$i 1;$i $e;$i++)
   
$zahl .= '0';
echo 
$zahl;
?>
__________________
http://www.silvercoding.de
------------
ElePHPant Edit
konsti ist offline   Mit Zitat antworten
Alt 16.10.2004, 19:36  
Erfahrener Benutzer
 
Registriert seit: 17.08.2004
Beiträge: 213
carrib befindet sich auf einem aufstrebenden Ast
Standard

Hi,

die Lösung ist mit BC Math
Zitat:
Zitat von PHP Manual
Für beliebig genaue mathematische Operationen bietet PHP den Binary Calculator. Unterstützt werden Zahlen beliebiger Länge und Genauigkeit, die als String vorliegen.
kein grosses Problem - sofern PHP mit der Option --enable-bcmath konfiguriert wurde.

Zum Bleistift
Code:
<?php

$a = '0.8109064025044104410250196025081022502502890256028902501690';
$b = '0.09064025044104410250196025081022502502890256028902501690';
$ergebnis  = bcsub($a, $b, 60);
echo substr($ergebnis, 2);

// Ausgabe: 720266152063366338523059351697877225221386465313865233269000

?>
Beachte hierbei, dass die beiden Werte als Nachkommestellen einer Fließkommazahl übergeben werden. Solltest Du versuchen die Werte als ganzzahlige Werte zu übergeben, hast Du das gleiche Problem in grün.
Code:
<?php

$a = '8109064025044104410250196025081022502502890256028902501690';
$b = '09064025044104410250196025081022502502890256028902501690';
$ergebnis  = bcsub($a, $b, 60);
echo $ergebnis;

// Ausgabe: 8100000000000000000000000000000000000000000000000000000000.0000 ..... u.s.w.

?>
carrib ist offline   Mit Zitat antworten
Alt 16.10.2004, 20:01  
Erfahrener Benutzer
 
Registriert seit: 17.08.2004
Beiträge: 213
carrib befindet sich auf einem aufstrebenden Ast
Standard

Nochmal Hi,

beim vorherigen Beispiel wurde der zweite Operand nicht an die Länge des ersten angepasst, korrekt sollte es lauten:

Code:
$a = '0.8109064025044104410250196025081022502502890256028902501690'; 
$b = '0.0009064025044104410250196025081022502502890256028902501690';
Die folgende Funktion übernimmt den Job und dürfte für Deine Berechnungen ausreichen:
Code:
<?php

/**
 * bc_really_big_int()
 */
function bc_really_big_int($bc_func, $a, $b) {
	// check if function exists
	if(function_exists($bc_func)) {
		$scale = (strlen($a) > strlen($b))?strlen($a):strlen($b);
		$afloat = '0.'.str_repeat('0', $scale-strlen($a)).$a;
		$bfloat = '0.'.str_repeat('0', $scale-strlen($b)).$b;
		$result = call_user_func($bc_func, $afloat, $bfloat, $scale);
		$result = str_replace('.', '', $result);
		return($result);
	} else {
		return(false);
	}
}

$ergebnis = bc_really_big_int('bcsub', '8109064025044104410250196025081022502502890256028902501690', '4025044104410250196025081022502502890256028902501690');
var_dump($ergebnis); echo '
';
$ergebnis = bc_really_big_int('bcadd', '8109064025044104410250196025081022502502890256028902501690', '4025044104410250196025081022502502890256028902501690');
var_dump($ergebnis); echo '
';

?>
carrib ist offline   Mit Zitat antworten
Alt 16.10.2004, 20:46  
Gast
 
Beiträge: n/a
Standard

Super danke
  Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
zahlen mit zeilenumbruch nach x-ter zahl ausgeben centauro PHP Tipps 2008 2 09.02.2008 14:22
zahl richtig ausgeben Cyrus PHP Tipps 2006 3 16.01.2006 20:25
preg_replace: Zahl anstatt String FI-DD PHP-Fortgeschrittene 4 02.10.2005 14:50
zahl ausgeben wenn gerade Tschuu PHP Tipps 2005-2 6 07.07.2005 19:20
Prüfung auf Zahl, Wert in PHP? PHP Tipps 2005-2 1 07.06.2005 10:32
[Erledigt] Eine Zahl auf &quot;geile Art&quot; aufzählen HTML, Usability und Barrierefreiheit 12 02.05.2005 22:11
Zahl runden (schöne Intervalle) PHP Tipps 2005 7 02.05.2005 15:32
Größte Zahl raussuchen themonk PHP Tipps 2005 3 21.04.2005 19:27
$zahl in eine echte Zahl im Script?!? Matthiasnet PHP Tipps 2005 3 07.03.2005 22:17
Höchste Zahl mit Int? Beatbox Datenbanken 2 23.12.2004 12:44
zahl von fremder seite herausfiltern! PHP Tipps 2004-2 3 12.11.2004 15:12
[Erledigt] Zahl in Buchstabenwert wandeln PHP-Fortgeschrittene 7 19.09.2004 10:39
Reguläre Ausdrücke - Zahl suchen PHP Tipps 2004 6 17.09.2004 12:28
nur eine bestimmte zahl von Buchstaben darstellen PHP Tipps 2004 9 27.08.2004 16:14
Zahl aus Textstring rausziehen PHP Tipps 2004 2 11.07.2004 14:44

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
zahl mit e, e zahl, ganze zahlen darstellen, php zahlen e, php zahl e, php zahl darstellung ohne e, php ganze zahl, zahl e, php zahl ohne e, zahl darstellen, php zahl mit e, php zahlen darstellen, zahlen darstellen, php e zahlen ausgeben, e-zahlen php, zahlen mit e darstellen, e in zahl, e in einer zahl, php zahl e 14, php e zahl

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:15 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.