Maison base de données tutoriel mysql oracle保留两位小数解决方案

oracle保留两位小数解决方案

Jun 07, 2016 pm 05:55 PM
réserve 小数

公司需要处理一些报表,需要使用百分率,保留2位小数,只用round和trunc函数都可以实现(round(_data,2) ),只是格式不是很工整,对格式要求不严谨的情况下使用round即可

公司需要处理一些报表,需要使用百分率,保留2位小数,只用round和trunc函数都可以实现(round(_data,2) ),只是格式不是很工整,对格式要求不严谨的情况下使用round即可.

个人认为比较方便的一种
select decode(n_jg,0,'0.00',trim(to_char(n_jg,'9999999.99'))) from tbl
如果只是检索,可是使用:
1、select trunc(CUR_SUM,2) from data_record;
将小数转化成百分比=> round(zcbj/zs*100)||'%' ==trunc((zcbj/zs),2)*100||'%'
2、如果想更新数据,可以使用:
update data_record set CUR_SUM=trunc(CUR_SUM,2) where REC_NO=123

方法一:使用to_char的fm格式
to_char(round(data.amount,2),'FM9999999999999999.00') as amount
不足之处是,如果数值是0的话,会显示为.00而不是0.00。
另一需要注意的是,格式中小数点左边9的个数要够多,否则查询的数字会显示为n个符号“#”。
解决方式如下:
select decode(salary,0,'0.00',(to_char(round(salary,2),'fm99999999999999.00'))) from can_do;

方法二:使用case when then else end进行各种情况的判断处理
case
when instr(to_char(data.amount), '.') data.amount || '.00'
when instr(to_char(data.amount), '.') + 1 = length(data.amount) then
data.amount || '0'
else
to_char(round(data.amount, 2))
end as amount_format

方法三:可以使用Oracle自带的参数设置
column amount format l9999999999.99
此方法的不足是,format中的小数点左面的9的个数要已知,否则会出现超过的数字显示为########的情况。
另外一个问题是,使用column时,设置生效是session级还是system级,需要注意。
也许某张表的数值列不总是要求所有的地方显示时,都是小数点后两位的格式,此时只能使用session级,但是有个数据库连接会话超时的问题,如果不是使用到system级,不建议使用该方法。

方法四:使用to_char+trim的方式
select trim(to_char(1234,'99999999999999.99')) from dual;
或者
select ltrim(trim(to_char(1234.525,'00000000000000.00')),'0') from dual;
此处使用了14个9或者14个0的格式,建议使用14个9的方式,方便些。方法四的不足之处是:
如果数值是0的话,转化之后为.00而不是0.00,补救措施是,decode一下。
另一需要注意的是,格式中小数点左边9或者0的个数要够多,负责查询的数字会显示为n个符号“#”。
如下:
select decode(salary,0,'0.00',trim(to_char(salary,'99999999999999.99'))) from can_do;
或者
select decode(salary,0,'0.00',ltrim(trim(to_char(salary,'00000000000000.00')),'0')) from can_do;
结论:建议使用方法四中的trim+to_char的方式或者方法一的补救之后的方式,而且最好使用小数点左边n个9的方式,不要使用0的方式,否则,要多一步trim处理。
即:select decode(salary,0,'0.00',trim(to_char(salary,'99999999999999.99'))) from can_do;
或者
select decode(salary,0,'0.00',(to_char(round(salary,2),'fm99999999999999.00'))) from can_do;

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment convertir un entier en décimal en javascript Comment convertir un entier en décimal en javascript Nov 03, 2021 pm 05:59 PM

En JavaScript, vous pouvez utiliser la fonction toFixed() pour convertir un entier en nombre décimal. Cette fonction peut convertir un entier en nombre avec un nombre spécifié de décimales ; la syntaxe est « number.toFixed(x) » ; le paramètre "x" spécifie le nombre de décimales.

Fonction round() de Python : conserver les décimales avec les chiffres spécifiés Fonction round() de Python : conserver les décimales avec les chiffres spécifiés Nov 18, 2023 pm 05:35 PM

Fonction round() de Python : conservation d'un nombre spécifié de décimales, nécessitant des exemples de code spécifiques Présentation : Dans la programmation Python, les nombres à virgule flottante doivent souvent être arrondis pour conserver un nombre spécifié de décimales. Pour résoudre ce problème, Python fournit la fonction round(). Cet article présentera l'utilisation de la fonction round() et fournira quelques exemples de code spécifiques. Utilisation de la fonction round() : La fonction round() est une fonction intégrée de Python, qui est utilisée pour quadrupler les nombres à virgule flottante.

Que retiendra-t-on du deuxième tour de l'Elden French Tour ? Que retiendra-t-on du deuxième tour de l'Elden French Tour ? Mar 11, 2024 pm 02:31 PM

Lorsqu'ils jouent dans Elden's Ring, les joueurs peuvent également ouvrir le deuxième jeu après avoir terminé le niveau. De nombreux joueurs ne savent pas ce qui sera conservé dans le deuxième jeu. Les éléments liés aux attributs du personnage et à l'efficacité au combat seront conservés dans le deuxième jeu. Qu'est-ce qui sera retenu lors du deuxième tour d'Elden's Circle ? Les premier et deuxième tours n'hériteront que du niveau, de l'équipement et des accessoires. 2. Le niveau, l'équipement, les armes, les prières, la magie, les cendres, les amulettes, le Dettol, les cendres de guerre, etc. du deuxième cycle d'Elden's Circle seront conservés. 3. Tout dans la liste d'équipement, qui peut être simplement comprise comme la liste d'équipement, est réservé, y compris le niveau d'amélioration de l'arme. 4. Tous les feux de camp et accessoires liés à l'intrigue ne seront pas hérités, les éléments de collection sur la carte ne seront pas conservés et les grosses runes ne seront pas conservées.

La mise à niveau vers Win11 conservera-t-elle les détails du logiciel d'origine ? La mise à niveau vers Win11 conservera-t-elle les détails du logiciel d'origine ? Dec 31, 2023 pm 02:49 PM

Le logiciel est la partie la plus importante lorsque nous utilisons des ordinateurs. Essentiellement, la plupart des gens utilisent des ordinateurs pour utiliser ces logiciels. Par conséquent, si le logiciel est effacé lors de la mise à niveau vers Win11, cela entraînera de gros désagréments. Cependant, si nous pouvons mettre à niveau Win11 normalement, tous les logiciels seront conservés. Vous n'avez pas à vous inquiéter. Jetons un coup d'œil ci-dessous. Le logiciel sera-t-il conservé après la mise à niveau vers win11 ? Réponse : Tous les logiciels seront conservés. 1. Dans la séance de questions-réponses officielle, Microsoft a déclaré que la mise à niveau vers Win11 conserverait tous les fichiers et données, ce qui inclut bien sûr tous les logiciels. 2. Par conséquent, tout le monde peut mettre à niveau le système win11 en toute confiance. 3. Cependant, cela ne signifie pas que nous ne pouvons pas du tout sauvegarder les fichiers importants. 4. Parce que Win11 est terminé

Comment conserver uniquement la version professionnelle de Win10 image Comment conserver uniquement la version professionnelle de Win10 image Jan 02, 2024 pm 06:37 PM

Certains utilisateurs rencontreront des problèmes lors du téléchargement et de l'installation du système win10. Par exemple, si l'installation devient une version professionnelle, nous pouvons télécharger la version du système que vous souhaitez utiliser et la réinstaller. Que dois-je faire si l'image win10 ne conserve que la version professionnelle Réponse : Vous pouvez réinstaller une version système. Il est recommandé de choisir l'installation en un clic de Berry. Vous pouvez directement télécharger et installer le logiciel, puis sélectionner la version du système souhaitée, puis faire une sélection. 1. Cliquez sur la police bleue à l'arrière pour accéder à la page de téléchargement. >>>2. Après avoir entré, téléchargez le logiciel et utilisez-le. Pour les étapes détaillées, vous pouvez consulter cet article. >>>Lequel est le meilleur, Win10 Professional Edition ou Home Edition Réponse : Voir ?

Comment php gère-t-il les décimales ? Introduction à diverses méthodes Comment php gère-t-il les décimales ? Introduction à diverses méthodes Mar 28, 2023 pm 03:45 PM

PHP est l'un des langages de programmation les plus populaires pour le développement Web. En PHP, le traitement des décimales est très important, car dans le travail de programmation réel, nous devons souvent effectuer des opérations précises sur les décimales. Cet article présentera plusieurs façons de traiter les décimales afin d'effectuer des opérations décimales plus efficacement.

Exploiter l'extension PHP BCMath : ouvrir la porte aux mathématiques de haute précision Exploiter l'extension PHP BCMath : ouvrir la porte aux mathématiques de haute précision Feb 23, 2024 am 09:22 AM

L'extension PHPBCMath est un outil puissant de la bibliothèque standard PHP. Elle fournit une riche bibliothèque de fonctions capable de gérer des calculs complexes tels que de grands nombres, des décimales et des fractions. Par rapport aux opérateurs et fonctions mathématiques intégrés de PHP, les extensions BCMath peuvent fournir une plus grande précision et une plus large gamme d'opérations, répondant ainsi aux besoins de calculs mathématiques de haute précision dans divers domaines tels que la science, l'ingénierie et la finance. Pour utiliser l'extension BCMath, vous devez inclure le code suivant dans votre script PHP : Parmi eux, la fonction bcscale() est utilisée pour définir le nombre de chiffres après la virgule décimale. La valeur par défaut est 0, ce qui signifie non. les décimales sont conservées. Vous pouvez ajuster cette valeur si nécessaire pour contrôler la précision du calcul

Traduisez ce qui suit en chinois : Imprimez les k premières décimales de 1/n dans un programme C, où n est un entier positif Traduisez ce qui suit en chinois : Imprimez les k premières décimales de 1/n dans un programme C, où n est un entier positif Aug 28, 2023 pm 07:29 PM

Entrez un nombre N tel que 1/N renverra la sortie générée sous la forme spécifiée en décimal jusqu'à ce que la limite soit atteinte. Il est facile d'utiliser des nombres à virgule flottante, mais le défi n'est pas de les utiliser. Entrée −n=5k=5 Sortie −20000 Cela signifie que si n=5 et k=5 divisé par 1/5, la sortie doit être affichée avec 5 décimales. AlgorithmeStartStep1->Déclarerintvariablento9andkto7andremainto1andiStep2->Loopforito0andi<kandi++ Print((10*remain)/n)&n

See all articles