2012-04-08 9 views
-1

Ich lese einen Wert von einer SPS über eine Third-Party-Bibliothek ein. Wenn er jedoch doppelt gespeichert wird, scheint der Wert in wissenschaftlicher Notation zu sein.Anzeige eines wissenschaftlichen Notationsdoppels in einem besser lesbaren Format

Der Wert in der SPS ist 1.234 jedoch, wenn die Anwendung debuggen, wird der Wert im Doppel gespeichert ist 5.27326315571927E-315

ich dies in einem Etikett bin Anzeige, aber ich will es als 1.234 eher ein als angezeigt werden wissenschaftliche Schreibweise.

Wie kann ich diese konvertieren?

+3

FYI: '5.27326315571927E-315' =' 1.234'. Es ist '~ 0' –

+1

Ich denke, Sie müssen Code zeigen, aber es klingt, als ob Sie ein float in ein Doppel oder etwas entlang dieser Linien setzen –

Antwort

2

Als wilde Vermutung, ich denke, Sie sollten 4 Bytes (Float) aus Ihrer Bibliothek nicht doppelt (8 Bytes) lesen.

Seit 5.27326315571927E-315 ist fast Null.

double d = 5.27326315571927E-315; 
byte[] b = BitConverter.GetBytes(d); 
float f = BitConverter.ToSingle(new byte[] { b[0], b[1], b[2], b[3] }, 0); 

f 1.2345 jetzt

+0

Interessant! Ich habe es geändert, um den Wert in einen Float zu konvertieren, und ich bekomme jetzt den Wert 1.234. Der Beispielcode, den sie zur Verfügung gestellt haben, wird in ein Double konvertiert, und ich habe dies bei einem früheren Projekt getan und es hat gut funktioniert ... aber diesmal nicht! Vielen Dank! –