[FIXED] Auf 4 Dezimalstellen gerundet, aber die Ausgabe zeigt 4 Dezimalstellen + 4 Nullen in MS SQL Server

Ausgabe

Ich arbeite an der Wetterbeobachtungsstation 17 in HackerRank. Fragen Sie den westlichen Längengrad (LONG_W) ab, wobei der kleinste nördliche Breitengrad (LAT_N) in STATION größer als 38,7780 ist. Runden Sie Ihre Antwort auf 4 Dezimalstellen.

Tabelle: STATION Felder: ID, CITY, STATE, LAT_N, LONG_W wobei LAT_N der nördliche Breitengrad und LONG_W der westliche Längengrad ist.

Mein Code:

SELECT ROUND(LONG_W,4,0) AS low
FROM STATION
WHERE LAT_N = (SELECT MIN(LAT_N) FROM STATION WHERE LAT_N > 38.7780);

Ausgabe: 70.13780000 Die Antwort ist falsch. Ich habe diese Frage online nachgeschlagen und der Code sieht in anderen Antworten gleich aus. Ich verwende MS SQL Server. Der gleiche Code funktioniert gut auf MySQL

Lösung

Die ROUNDFunktion gibt den gleichen Datentyp, die gleiche Genauigkeit und Skalierung wie die Eingabe zurück:

select round(1.10045001, 4); -- 1.10050000
select round(1.10055001, 4); -- 1.10060000

Sie müssen CAST(... AS DECIMAL(..., 4))eine Dezimalzahl mit genau 4 Ziffern erzeugen. Diese Funktion rundet den Wert mit demselben Algorithmus wie ROUNDbei der Konvertierung:

select cast(1.10045001 as decimal(18, 4)); -- 1.1005
select cast(1.10055001 as decimal(18, 4)); -- 1.1006


Beantwortet von –
Salman A


Antwort geprüft von –
Dawn Plyler (FixError Volunteer)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like