Optimieren Sie einen EA und holen Sie sich das Beste aus den optimierten EAs. - Seite 49

 
Georgiy Merts:

Übrigens hat ein Mitglied aus einem anderen Forum immer wieder darüber nachgedacht und um alle seine 9 Regcodes gebeten.

Ich vermute, dass er nach einiger Zeit weiterhin in der TC League helfen wird.

Ich denke, seine Entscheidung wird von der Leistung der Ratsmitglieder abhängen.

 
Georgiy Merts:

Alexej, wie kann ich das für Sie tun?

Für die Ausgabe in eine Datei verwende ich Strings. Und um Double in String zu verwandeln - Standardfunktion (DoubleToString()).

Wenn ich, um ein Element der Liste abzugrenzen - ich könnte ein spezielles Feld (entweder String oder Boolean) machen, ich schreibe Begrenzer explizit in eine Datei, was soll ich dann mit Standardfunktionen tun?

Es sei denn, Sie erzwingen, dass ein Dezimalpunkt vor der Ausgabe in die Datei durch ein Komma ersetzt wird - aber sind Sie sicher, dass das die richtige Lösung ist?

Genau - suchen Sie nach einem Punkt in der Zeichenkette, bevor Sie sie in die Datei ausgeben, und ändern Sie ihn in ein Komma!

Ich bin sicher, dass die meisten RF-Teilnehmer die Datei auf diese Weise normal in Excel öffnen und keine Daten anstelle von Zahlen schreiben.

 
Aleksey Vyazmikin:

Das ist richtig - suchen Sie nach einem Punkt in der Zeile, bevor Sie sie in die Datei ausgeben, und ändern Sie ihn in ein Komma!

Ich bin sicher, dass die meisten RF-Teilnehmer die Datei auf diese Weise ganz normal in Excel geöffnet haben, anstatt Daten anstelle von Zahlen zu schreiben.

Sie glauben also, dass ich nicht zur Mehrheit gehöre? Meine Statistikdatei lässt sich problemlos in Excel öffnen, und der Dezimalpunkt wird genau als Dezimalpunkt wahrgenommen.

Und Sie sind also der Meinung, dass anstelle des Dezimalpunkts im Dezimaltrennzeichen ein Komma stehen sollte? Das klingt, als ob du etwas Falsches sagst, Alexej...

Aber, das Problem ist klein, und persönlich für Sie - ich werde eine spezielle Version der Experten, in denen ich einen Punkt mit einem Komma ersetzen wird.

In ein paar Tagen - jetzt bin ich dabei, einige Klassen meiner Bibliothek fertigzustellen.

 
Aleksey Vyazmikin:
45 Regionalcodes.
 
Georgiy Merts:

Sie glauben also, dass ich nicht zur Mehrheit gehöre? Meine Statistikdatei lässt sich problemlos in Excel öffnen, und der Dezimalpunkt wird als Dezimalpunkt wahrgenommen.

Und Sie sind also der Meinung, dass anstelle des Dezimalpunkts im Dezimaltrennzeichen ein Komma stehen sollte? Das klingt, als ob du etwas Falsches sagst, Alexej...

Aber das Problem ist nicht groß, und persönlich für Sie - ich werde eine spezielle Version von Experten, in denen ich ein Dezimalpunkt mit einem Komma ersetzen zu machen.

In ein paar Tagen - jetzt bin ich dabei, einige Klassen meiner Bibliothek fertigzustellen.

Du machst es nicht für mich, sondern für die Mehrheit - ich bin nicht das Publikum, das sich für das Projekt interessieren muss.

Ich spreche von der Mehrheit auf der Grundlage einer Stichprobe von Personen, die in den Büros von Unternehmen arbeiten und vom Manager bis zum Buchhalter mit Zahlen zu tun haben.

 
Aleksey Vyazmikin:

Sie tun es nicht für mich, sondern für die Mehrheit - ich bin nicht das Publikum, das sich für das Projekt interessiert.

Ich spreche von der Mehrheit auf der Grundlage einer Stichprobe von Personen, die in den Büros von Unternehmen arbeiten und vom Manager bis zum Buchhalter mit Zahlen zu tun haben.

Das gilt auch für mich - und ich habe noch nie ein Komma als Dezimalzeichen gesehen. Ich habe viel mit Buchhaltern gearbeitet. Es stimmt, meine Informationen sind mehr als ein Jahrzehnt alt. Vielleicht hat sich jetzt etwas geändert?

Außerdem glaube ich, dass es schon vor langer Zeit Threads im Forum gab, dass DoubleToString() ein Komma als Trennzeichen zurückgeben sollte. (Obwohl es auf eine gute Art und Weise Separator zurückgeben sollte, was im Gebietsschema vorgeschrieben ist). Aber ich erinnere mich nicht an solche Themen.

Sind Sie sicher, dass für die meisten Menschen das Dezimaltrennzeichen ein Komma und kein Dezimalpunkt ist?

 
Georgiy Merts:

Genau das meine ich - und ich habe noch nie gesehen, dass ein Komma als Dezimalkomma verwendet wird. Ich habe viel mit Buchhaltern gearbeitet. Wirklich, meine Informationen sind zehn Jahre oder mehr alt. Vielleicht hat sich jetzt etwas geändert?

Außerdem glaube ich, dass es schon vor langer Zeit Threads im Forum gab, dass DoubleToString() ein Komma als Trennzeichen zurückgeben sollte. (Obwohl es auf eine gute Art und Weise Separator zurückgeben sollte, was im Gebietsschema vorgeschrieben ist). Aber an solche Themen kann ich mich nicht erinnern.

Sind Sie sicher, dass für die meisten Menschen das Dezimaltrennzeichen ein Komma und kein Dezimalpunkt ist?

Ich habe Ihnen bereits über meine Zuversicht geschrieben, die aus meiner Erfahrung kommt, ich bin kein Garant für die Gedanken und Gewohnheiten der Menschen - ich habe Ihnen die Fakten aus meiner Erfahrung erzählt.

Ich werde Ihnen sagen, dass die numerische Tastatur (die auf der rechten Seite des Briefes - die Summe), das russische Layout, wenn Sie einen Punkt (Entf) drücken, gibt ein Komma, und es ist ein Werkzeug, das Menschen verwenden, wenn die Arbeit mit Zahlen.

 
Aleksey Vyazmikin:

Ich habe Ihnen bereits über mein Vertrauen geschrieben, das aus meiner Erfahrung kommt, ich bin kein Garant für die Gedanken und Gewohnheiten der Menschen - sagte die Fakten aus meiner Erfahrung.

Ich werde Ihnen sagen, dass die numerische Tastatur (die auf der rechten Seite des Alphabets - gemeinsam), in der russischen Layout, wenn Sie einen Punkt (Entf) drücken, gibt ein Komma, und das ist das Werkzeug, das die Menschen verwenden, wenn die Arbeit mit Zahlen.

Ja, das stimmt, das ist die einzige Taste, die ich für die Eingabe von Zahlen verwende.

Und ich habe ein Symbol auf dieser Taste - je nach Layout.

Wenn ich Russisch einschalte, kann ich mit dieser Taste nirgendwo ein Komma setzen. Ich setze überall ein Dezimalkomma.

Als ich jedoch auf Englisch umgestellt habe, zeigt die Hälfte der Programme ein Komma an (obwohl Excel in beiden Layouts einen Dezimalpunkt anzeigt).

Natürlich sollte dieFunktion DoubleToString() auf das Gebietsschema achten und das Trennzeichen für ganze Zahlen und Nachkommastellen setzen, das dort angegeben ist. Aber die Tatsache, dass diese Funktion einen Dezimalpunkt verwendet, sagt mir, dass die meisten Leute davon ausgehen, dass das Trennzeichen für den Bruchteil ein Dezimalpunkt sein sollte.

Aber das Problem ist weit hergeholt - ich werde ein Komma für Sie machen, und diese Funktion wird im Code bleiben. Wenn jemand danach fragt, wird er es auch bekommen.

 
Georgiy Merts:

Ja, ja. Ich benutze diese Tasten nur zur Eingabe von Zahlen.

Und ich habe ein Symbol auf dieser Taste - es hängt vom Layout ab.

Wenn ich Russisch einschalte, kann ich mit dieser Taste nirgendwo ein Komma setzen. Ich setze überall ein Dezimalkomma.

Als ich jedoch auf Englisch umgestellt habe, zeigt die Hälfte der Programme ein Komma an (obwohl Excel in beiden Layouts einen Dezimalpunkt anzeigt).

Übrigens sollte dieFunktion DoubleToString() das Gebietsschema beachten und das dort vorgeschriebene Trennzeichen zwischen ganzem und gebrochenem Teil setzen. Aber die Tatsache, dass diese Funktion einen Dezimalpunkt verwendet, sagt mir, dass die meisten Menschen davon ausgehen, dass das Trennzeichen für Nachkommastellen ein Dezimalpunkt sein sollte.

Aber das Problem ist weit hergeholt - ich werde ein Komma für Sie machen, und diese Funktion wird im Code bleiben. Wenn jemand danach fragt, wird er es auch bekommen.

Übrigens, der Mann hier hatte das gleiche Problem, und es war nur mit MThttps://habr.com/post/138957/ . Er sagte nur, dass der Punkt ein englischsprachiges Trennzeichen ist, während das Komma eher in Russland verwendet wird.

Wie auch immer, so ist das eben, danke für die Kommasetzung!

То, что нужно помнить о десятичном разделителе
То, что нужно помнить о десятичном разделителе
  • 2027.02.12
  • habr.com
Все, кто когда-либо писали программы на C#, использовали такую простую функцию как у меня, как и у остальных, до определенного момента никаких проблем с ней не возникало. У этой функции есть такая особенность, которая не всем известна — это то, что разделитель по умолчанию используется тот, который стоит в системе. В англоязычных странах в...
 
Aleksey Vyazmikin:

Wie auch immer, das war's, danke für die Kommasetzung!

Ja, das werde ich.

Ich werde die Änderung der Klassen abschließen (um die Dinge zu beschleunigen) und eine Komma-Ersetzung hinzufügen.

In etwa ein oder zwei Wochen.