Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

PHP Zahlenkonvertierung mit float

Frage Entwicklung PHP

Mitglied: zoro17

zoro17 (Level 1) - Jetzt verbinden

01.02.2008, aktualisiert 02.02.2008, 8670 Aufrufe, 5 Kommentare

Hallo zusammen,
ich habe MySQL- Datenbank-Tabellen mit Feldern vom Typ decimal und char. Lese die Inhalte per
PHP aus. Soweit kein Problem.
Die Applikation, die die Weiterverarbeitung übernimmt, verlangt zwingend ein Komma (kein
Punkt) für die Zahlenwerte. Da ich auch Texte habe, kann ich nicht einfach alle Punkte in Kommata
per PHP umwandeln.
Eine Fallunterscheidung ist bei der Anzahl von Tabellen und Feldern leider unmöglich.
Deshalb versuche ich, den Wert per PHP mit (float) umzuwandeln. Geht das gut, tausche ich
den Punkt in Komma aus. Geht die Umwandlung schief, ist es ein Text, bei dem es nichts
umzuwandeln gibt.
Nun habe ich in den decimal Feldern auch eine 0 drin, die als 0.000000 gespeichert wurde.
Die Umwandlung (float)0.000000 verhält sich leider wie ein String, d.h. ich erkenne die Zahl hier
nicht.
Kennt jemand hier eine Lösung des Problems? Bietet sich für die Typenbestimmung etwas
anderes für float an?

Leider kan ich aus Performancegründen keine umfangreiche Fallunterscheidung machen, d.h.
mit max. 2 Bedingungen sollte ich wissen, ob ich es mit einem String oder mit einer Zahl zu tun
habe.
Danke im Voraus.
Gruss
Mitglied: Guenni
01.02.2008 um 22:36 Uhr
@zoro17

Hi,

is_double(variable) gibt am Bildschirm eine 1 aus(true), wenn variable
eine Zahl ist.

doubleval(variable) wandelt eine Variable vom Typ String, die eine
Dezimalzahl darstellt, in einen Typ Dezimalzahl um.

$var="0.12"; wäre eine Variable vom Typ String.

$var=doubleval($var);

echo is_double($var); gibt auch hier true aus.

Gruß
Günni
Bitte warten ..
Mitglied: zoro17
01.02.2008 um 23:31 Uhr
Hallo Günni,
vielen Dank für Deine Antwort. Werde es ausprobieren und Rückmeldung geben.
Gruss
Bitte warten ..
Mitglied: zoro17
02.02.2008 um 12:46 Uhr
Hallo Günni,
da ich noch PHP Neuling bin (bisher nur ASP), kam ich dank Deiner Hilfe zu den Funktionen, die
mir helfen. Ich glaube, is_numeric ist das, was ich brauche oder?
Hatte damit Erfolg.
Gruss
Bitte warten ..
Mitglied: Guenni
02.02.2008 um 19:04 Uhr
@zoro17

Hi,

Ich glaube, is_numeric ist das, was ich brauche oder?

$var="0.15"; // <-- Stringvariable

if(is_numeric($var)){
echo "JA";
}

Da bei diesem Beispiel ein JA ausgegeben wird, könnte es
auch das sein, was du brauchst.

Da ich aber letztendlich deine Tabellendefinition nicht kenne und
auch nicht deinen Abfrageterm, kann ich hier nur mutmaßen.

Probier's einfach aus, wenn es nicht geht, poste mal mehr Info.

Ach ja, was ich noch sagen(schreiben) wollte:

Eine Null im Format 0.000000 kann ich in meiner Datenbank nicht
ablegen. Da steht immer nur 0. Vielleicht kannst du mir sagen, wie du das
gemacht hast

Gruß
Günni
Bitte warten ..
Mitglied: zoro17
02.02.2008 um 21:22 Uhr
Hallo Günni,
zum Hintergrund meiner Frage:
Meine Applikation ist in MS Excel bzw. in Staroffice Calc integriert.
Diese Applikation setzt http Befehle (i.a SQL Befehle) ab.
Das Backoffice (Webdatenbank mit ASP bzw. PHP) antwortet mit html.
Bei einer Select-Anweisung kommt eine große html-Tabelle zurück,
die die Office Pakete clientseitig in ihre Zellen laden und weiterverarbeiten können.
Ist eine reelle Zahl in der Webdatenbank (z.b. 12.34), dann schmeißen
die Office Pakete das Komma weg. Kommt jedoch 12,34 an, klappts an.

Das serverseitige PHP Programm, das den Select entgegennimmt, behandelt
jedes Datenbankfeld gleich, egal ob string, int, float, datum...
Seine Aufgabe ist nur das Auflisten in Tabellenform.

Zu Deiner Frage: ich erweitere gerade serverseitig von SQL Server/
Windows zu MySql/Windows bzw. Linux. Um den SQL Server zu kopieren, habe ich
ein Programm geschrieben, das per SQL die MySQL Datenbank
aufbaut und füllt. Das Feld ist in MySQLwie im SQL Server als dec 15,6 definiert
und wird per SQL mit dem Wert 0.000000 gefüllt. So kommt die Zahl in MySQL.

Gruss
Bitte warten ..
Neuester Wissensbeitrag
Windows Update

Windows Update-Suche nach Win7 Neuinstallation wieder schneller

(2)

Erfahrungsbericht von the-buccaneer zum Thema Windows Update ...

Ähnliche Inhalte
PHP
gelöst PHP und XML Float und Double (2)

Frage von chrisen zum Thema PHP ...

PHP
PHP: URL kürzen (14)

Frage von michi-ffm zum Thema PHP ...

PHP
gelöst PHP 7 und LDAP mit Umlauten (3)

Frage von wiesi200 zum Thema PHP ...

Administrator.de Feedback
Entwicklertagebuch: PHP 7 (4)

Information von admtech zum Thema Administrator.de Feedback ...

Heiß diskutierte Inhalte
Hyper-V
gelöst Reiner Hyper- V Server oder lieber Rolle (22)

Frage von Winuser zum Thema Hyper-V ...

Exchange Server
gelöst Bestehende eMails autoamatisch weiterleiten (22)

Frage von metal-shot zum Thema Exchange Server ...

SAN, NAS, DAS
gelöst Synology Version 6.1 Probleme (18)

Frage von Hendrik2586 zum Thema SAN, NAS, DAS ...

Router & Routing
gelöst IP Kamera für drei unabhängige Netzwerke (16)

Frage von ProfessorZ zum Thema Router & Routing ...