C# Alle geschriebenen Zahlen als double Werten

NSR

Mitglied
Hi Leute,

es geht darum, dass ich VB Code Convertiert habe und es in VB bei einem Wert von Math.Pow(X, (-5 / 17)) die -5/17 nicht 0 ist sondern eine Kommazahl. In C# allerdings müsste man -5.0 / 17.0 schreiben. Nun breuchte es allerdings etwas an Zeit hinter jede Zahl ein .0 zu schreiben und deswegen die Frage:
Kann man in C# Visual Studio einstellen, dass in einer Klasse, in einem Namespace, ... jede geschriebene Zahl als double gesehen wird und nicht als int?

Hoffe ihr versteht was ich meine.

Danke schon einmal für die Antworten.

Grüße,
Nico
 
Hi,

dann könnte ich ja auch den kompletten Code durchgehen und überall wo ne Zahl steht .0 dahintersetzen.
Des wäre dann auch noch weniger schreibkram wie überall Convert... zu schreiben.
Mir geht es aber darum, dass ich des nicht selber machen will, sondern im Studio oder irgend wo anders dem Code sagen möchte:"Werte alle Zahlen als double". Natürlich nur alle Zahlen, die keiner Variable zugewiesen sind.

Noch als kleiner Hintergrund.
Es geht in dem Programm um mathematische Formeln und da ist es extrem schlimm, wenn der depperte Compiler (wie im ersten Beitrag geschrieben) aus Math.Pow(5, (-5/17)) die -5/17 daraus keine Flieskommazahl berechnet sondern des als int lässt und deswegen nach der 0 abschneidet. Denn es ist ein gewaltiger Unterschied, ob man ^0 oder ^0.00431 hat.
 
Zuletzt bearbeitet:
"deppert" ist hier eher der Compiler von Visual Basic, -5 und 17 sind nunmal keine Fliesskommazahlen, warum sollte also der Compiler sie als solche auffassen? Und in den letzten Jahren in denen ich mit Visual Studio gearbeitet habe ist mir keine Möglichkeit aufgefallen das zu tun (was eigentlich auch gut ist).
 
Ich frage mich eher warum bei NSR so viele "harte" Zahlen im Quellcode stehen,
sodass es wirklich aufwand ist, alle umzuwandeln.
Das erscheint mir etwas seltsam und undynamisch.
 
@Turri: Das liegt daran, weil ich das Programm von VB6 in C# umwandeln soll und das Programm vor 25 Jahren von meinem Chef geschrieben wurde. Außerdem kann man dabei mit festen Werten arbeiten, da es sich um physikalische Größen handelt die gleich bleiben.
@Muepe32: Hast schon recht, dass der VB Compiler da eigentlich was falsch macht, aber des isch jetzt halt voll ******e, da an verdammt vielen stellen im VB Code int zahlen stehen, die ich jetzt der Genauigkeit halber in doubles umwandeln muss.
 
Du kannst natürlich versuchen selber kurz ein Programm zu schreiben, das nach Zahlen sucht, die nicht von einem . gefolgt werden (Stichwort Regex) und das dann automatisch mal an einer Testcopie des Sourcecodes durchlaufen lassen, vielleicht funktionierts ja schon gut.
 
Habs so ähnlich gemacht. Ich bin mit Suchen und Ersetzen von Studio durchgegangen und hab alle ersetzt. Blöd nur, dass der dabei auch alle indexer auf double gesetzt hat, was wieder zu fehlern geführt hat.

Nur mal so nebenher, ich hab das jetzt alles Händisch gemacht. Zumindest soweit ich was gesehen habe. Mich würde es aber trotzdem interresieren, ob man das umstellen kann.
Vor allem, da ich noch Code habe, den ich von VB in C# umsetzen muss.
 
Wie hast du denn den VB6-Code nach C# konvertiert? Das hört sich für mich nach einem Bug im benutzten Converter an. Das nächste Mal solltest du vllt. einen anderen benutzen.
 
Hi.
Außerdem kann man dabei mit festen Werten arbeiten, da es sich um physikalische Größen handelt die gleich bleiben.
Dann definiert man allerdings aussagekräftige Konstanten und verwendet keine "Magic Numbers".

Wenn man sauber arbeitet, spart man sich oft eine Menge Arbeit...

nur meine 0.02€

Gruß
 

Neue Beiträge

Zurück