2016-08-10 3 views
0

Wir haben eine Anwendung, die wie 1.8E + 6 Ergebnis großer Berechnungen in Exponenten Grundform zurückkehrt.Shop sehr große Zahlen in wissenschaftlicher Notation Form in SQL

Wir brauchen diesen Wert in der Datenbank zu speichern. Können wir dies in der Datenbank als Ganzzahl speichern oder es sollte zuerst in eine Zahl umgewandelt werden?

bitte helfen

+0

Was? ist der Typ dieses Wertes in der Anwendung? –

+0

Der Wert wird in einem Textfeld angezeigt. Nur um den Wert aus dem Textfeld zu lesen. – Abdul

+1

der Typ zu speichern, ist in Float meiner Meinung nach, auf diese Weise können Sie sparen bis zu 1 + e300 und darüber hinaus und bis zu -e300 und kleiner - Integer würde sehr kleine Werte wie 1e-06 – Cato

Antwort

0

Sie 1.8E + 6 direkt in eine Tabellenspalte vom Typ "int" einfügen können, wird es interpretiert (mit SQL Server 2014 getestet) wird.

Beachten Sie, dass „int“ nur Zahlen so groß wie 1.8E + 31 verarbeiten kann, für größere Zahlen Sie verwenden Bigint benötigen.

+0

wegwerfen Dieser Wert ist nur ein Beispiel. Die zurückgegebenen Werte sind größer. Danke dafür. – Abdul

3

SQL Server unterstützt die Gleitkommazahlen, die beide 4-Byte und 8 Byte. Diese akzeptieren Konstanten wie 1e4 in Exponentialschreibweise. Sie werden auch vollständig von den mathematischen Funktionen unterstützt.

Sie können über die Typen in der documentation lesen.

2

Ich denke, die größte Sie verwenden können, ist:

DECLARE @d float(53) 

Es liegt zwischen -1.79E + 308 und 1.79E + 308

+2

das hier zu verwenden ist, stimmt es, dass die großen Werte in Integer passen, aber es könnte auch sehr kleine Werte wie 1e-10 geben, wo eine ganze Zahl auf Null abgerundet wird – Cato

1

SQL die wissenschaftliche Notation direkt

Select val1 = 1.8e+6 
     ,val2 = cast(1.8e+6 as bigint) 
     ,val3 = cast('1.8e+6' as float) 
verbrauchen

Rückgabe

val1 val2 val3 
1800000 1800000 1800000 
Verwandte Themen