tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
979
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Registriert seit
    Apr 2006
    Beiträge
    9
    Hei Ho.
    Ich komme gerade von einem anderen Forum, die konnten oder wollten mir bei meinem Problem nicht helfen. Ich bin blutiger Anfänger und benutze Borland C++ Builder 5.
    Ich möchte über ein Memo Feld Zahlen einlesen. Dies habe ich über folgenden Befehl geschafft: a=Memo7->Text.ToInt(); Die Variable habe ich am Programmanfang über Int a; definiert.
    Integer kann ja nur ganze Zahlen verwalten. Ich möchte nun Dezimalzahlen in meiner Variablen a speichern können.
    Könnt ihr mir helfen und vielleicht ein Codebeispiel geben?

    THX Brösel
     

  2. #2
    Registriert seit
    Dec 2001
    Ort
    Bayern
    Beiträge
    5.800
    Blog-Einträge
    5
    Fließkommazahlen werden in C/C++ durch die Datentypen float und double repräsentiert. Die Klasse AnsiString stellt analog zu ToInt() auch ein ToDouble() zur Verfügung, sodass folgendes möglich sein sollte:

    double d = Memo7->Text.ToDouble();
     
    „Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
    “For every complex problem, there is an answer that is short, simple and wrong.”
    “Pessimism is safe, but optimism is a lot faster!”


    Aktuelles Coding Quiz: #17 - Wörter kreuz und quer

  3. #3
    Registriert seit
    Apr 2006
    Beiträge
    9
    Weehaa
    Danke Matthias Reitinger.
    So stelle ich mir ein Forum vor. Hat supi geklappt

    THX a lot

    MFG Brösel
     

  4. #4
    Registriert seit
    Apr 2006
    Beiträge
    9
    Ich hab noch ne Frage.
    Gibts ne Möglichkeit mit dem Datentyp Double die Dezimalzahlen zu runden?
    Ich hab hier im Forum die möglichkeit mit float gelesen, ist es auch möglcih so etwas mit double zu machen?

    THX Brösel
     

  5. #5
    Registriert seit
    Apr 2006
    Beiträge
    9
    //---------------------------------------------------------------------------

    #include <vcl.h>
    #include <stdlib.h>
    #include <stdio.h>
    #include <math.h>
    #include <math.hpp>

    #pragma hdrstop

    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    double b;
    double RoundDouble(double dValue, int iPrecision)
    {
    double dlPower10 = Power(10.0, iPrecision);
    return dValue >= 0 ? floorl(dValue * dlPower10 + 0.5) / dlPower10 :
    ceill(dValue * dlPower10 - 0.5) / dlPower10;
    }
    //---------------------------------------------------------------------------

    double b = Memo10->Text.ToDouble();
    Label19->Caption=RoundDouble(b, 2);


    Dank der Page: http://www.marquardtnet.info/cecke/q...quicky_03.html
    Bin ich auf das Ergebnis gestoßen, wie ich Runden kann.

    In meinem Beispiel lade ich aus dem MemoFeld10 eine Variable in b ein und gebe sie dann bei Label19 gerundet aus.

    Hier wird ein neuer Befehl definiert und zwar der RoundDouble(Variable, 2); Befehl.
    Vriable=eine definierte Variable in meinem Beispiel b
    Die 2 dahinter steht für die Nachkommastellen, also bei uns 2.

    Weeha

    THX to all

    Brösel
    Geändert von Brösel_the_real_on (03.05.06 um 13:49 Uhr)
     

Ähnliche Themen

  1. C: sehr große Zahlen einlesen
    Von HentaiD im Forum C/C++
    Antworten: 13
    Letzter Beitrag: 14.08.10, 17:21
  2. Antworten: 10
    Letzter Beitrag: 06.03.10, 20:51
  3. Antworten: 5
    Letzter Beitrag: 07.08.06, 10:59
  4. Antworten: 5
    Letzter Beitrag: 21.12.04, 15:33
  5. Einlesen von Zahlen
    Von cibal_gina im Forum C/C++
    Antworten: 2
    Letzter Beitrag: 11.10.04, 16:43