Frage

ich an einem Projekt bin Programmierung, die ich den Schlüssel des Benutzers auf die ursprüngliche Konfiguration einer Maschine gespeichert werden soll, mag ich es in C # schreiben.

I haben eine Anfangskonfiguration, die aus zwei Zahl R und X0 besteht, R = 3,9988 und X0 = 0,5. Ich möchte den Benutzerschlüssel an diese Nummern hinzuzufügen. zum Beispiel:

Key: hos110 =>

  • R = 3,9988104111115049049048
  • X0 = 0,5104111115049049048

104111115049049048 sind ASCII-Codes des Schlüssels, die verkettet werden.

Wie kann ich speichern Sie diese Zahlen?

Gibt es eine bessere Methode, dies zu tun?

Update: Wie wäre es MATLAB

War es hilfreich?

Lösung

Wenn Sie unendliche Genauigkeit benötigen brauchen Sie etwas, das BigInteger genannt wird. Allerdings sind diese Klassen in der Regel nur für wissenschaftliche Berechnungen verwendet (und in der Regel nicht geeignet als Aufbewahrung der Daten), die nicht wirklich scheinen Ihre Codebeispiel übereinstimmen. Wenn Sie nur allgemeine Berechnungen verwenden Strings tun müssen, und dann wandeln sie für die Berechnungen auf Dezimal.

Wenn Sie jedoch für eine solche BigInterger Klasse suchen, können Sie eine hier .

.Net 4.0 wird eine BigInteger hat built-in-Klasse in den Klassenbibliotheken genannt System.Numerics.BigInteger.

Andere Tipps

Sie sind nicht wirklich „Hinzufügen“ Zahlen. Du Verketten von Strings.

Speichern Sie sie als Strings. Sie können nicht viel präziser erhalten als das.

Wenn Sie arithmetische Operationen durchführen müssen, ist es leicht genug, um sie in eine Dezimalzahl im Fluge zu konvertieren.

ich nicht wirklich folgen, warum Sie einen Schlüssel als Teil einer Zahl verwenden, aber verlassen, dass abgesehen ... System.Decimal (aka decimal) scheint wie das richtige Werkzeug für den Job hier.

Nun, in Abhängigkeit von der Präzision, die Sie erreichen wollen, können Sie wahrscheinlich diese als ein Paar von dezimal Werte.

Wenn dies jedoch ein ASCII-Code ist, können Sie nur diese direkt als String zu speichern. Dies wird die numerische Genauigkeit Probleme vermeiden, besonders wenn man die 104.111 ... vor mit diesen Daten ziehen aus fahren.

Es scheint, dass Sie einen „Schlüssel“ speichern, warum also einen String dann nicht benutzen?

Gleitkommazahlen sind von Natur aus ungenau. Ich bin mir nicht sicher, was diese ‚Anfangskonfiguration‘ ist, oder warum ist es ein Schwimmer, aber du bist nicht gehen zu können, auf einem ‚Benutzerschlüssel‘ tack (was auch immer das sein mag) und erholen Sie es später. Bewahren Sie den Benutzerschlüssel separat, in einem String oder so etwas.

Wenn diese ‚Zahlen‘ keinen numerischen Wert haben, das heißt Sie werden sie nicht für die mathematische Berechnung verwenden, dann gibt es keine Notwendigkeit, sie in einem numerischen Datentyp zu speichern. Sie können sie als Strings gespeichert werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top