Suppression des zéros inutiles des données décimales SQL Server
Le type de données DECIMAL
de SQL Server (par exemple, DECIMAL(9,6)
) stocke les nombres avec une précision et une échelle définies. Parfois, des zéros supplémentaires sont ajoutés lors de l'insertion des données.
Problème :Comment éliminer ces zéros finals superflus ?
Solution :
La clé est de comprendre que les zéros à droite dans les valeurs DECIMAL
sont une question d'affichage plutôt que de stockage de données inhérent. La base de données stocke la valeur ; le formatage de l'application client dicte la façon dont elle est affichée. Une méthode efficace consiste à exploiter la conversion du type de données.
La conversion d'un DECIMAL
en un type de données FLOAT
puis son retour vers DECIMAL
supprime les zéros à droite. FLOAT
les représentations ne conservent généralement pas les zéros insignifiants.
Exemple :
<code class="language-sql">SELECT CAST(123.4567 AS DECIMAL(9,6)) AS OriginalDecimal, CAST(CAST(123.4567 AS FLOAT) AS DECIMAL(9,6)) AS TrimmedDecimal</code>
Résultat :
OriginalDecimal | TrimmedDecimal |
---|---|
123.456700 | 123.4567 |
Cela montre comment la diffusion vers FLOAT
et retour vers DECIMAL
supprime efficacement les zéros de fin sans modifier la valeur numérique sous-jacente. Notez que cette approche peut introduire des erreurs d'arrondi mineures dans certains cas extrêmes en raison de la nature de la représentation à virgule flottante. Pour les applications critiques nécessitant une précision absolue, des méthodes alternatives doivent être explorées.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!