Heim Datenbank MySQL-Tutorial oracle保留两位小数解决方案

oracle保留两位小数解决方案

Jun 07, 2016 pm 05:55 PM
reservieren 小数

公司需要处理一些报表,需要使用百分率,保留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;

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So konvertieren Sie eine Ganzzahl in eine Dezimalzahl in Javascript So konvertieren Sie eine Ganzzahl in eine Dezimalzahl in Javascript Nov 03, 2021 pm 05:59 PM

In JavaScript können Sie die Funktion toFixed() verwenden, um eine ganze Zahl in eine Zahl mit einer angegebenen Anzahl von Dezimalstellen umzuwandeln Parameter „x“ gibt die Anzahl der Dezimalstellen an.

Pythons Round()-Funktion: Dezimalzahlen mit angegebenen Ziffern beibehalten Pythons Round()-Funktion: Dezimalzahlen mit angegebenen Ziffern beibehalten Nov 18, 2023 pm 05:35 PM

Die Funktion „round()“ von Python: Beibehaltung einer bestimmten Anzahl von Dezimalstellen erfordert spezielle Codebeispiele Übersicht: In der Python-Programmierung müssen Gleitkommazahlen häufig gerundet werden, um eine bestimmte Anzahl von Dezimalstellen beizubehalten. Um dieses Problem zu lösen, stellt Python die Funktion „round()“ zur Verfügung. In diesem Artikel wird die Verwendung der Funktion „round()“ vorgestellt und einige spezifische Codebeispiele bereitgestellt. Verwendung der Funktion „round()“: Die Funktion „round()“ ist eine integrierte Funktion von Python, die zum Vervierfachen von Gleitkommazahlen verwendet wird.

Was bleibt in der zweiten Runde der Elden French Tour erhalten? Was bleibt in der zweiten Runde der Elden French Tour erhalten? Mar 11, 2024 pm 02:31 PM

Beim Spielen von Elden's Ring können Spieler das zweite Spiel auch nach Abschluss des Levels öffnen. Viele Spieler wissen nicht, was im zweiten Spiel erhalten bleibt. Was bleibt in der zweiten Runde von Elden's Circle erhalten? In der ersten und zweiten Runde werden nur Level, Ausrüstung und Requisiten übernommen. 2. Level, Ausrüstung, Waffen, Gebete, Magie, Asche, Amulette, Dettol, Kriegsasche usw. des zweiten Zyklus von Elden's Circle bleiben erhalten. 3. Alles in der Ausrüstungsliste, die einfach als Ausrüstungsliste verstanden werden kann, ist reserviert, einschließlich der Verstärkungsstufe der Waffe. 4. Alle Lagerfeuer und handlungsbezogenen Requisiten werden nicht vererbt, Sammlungselemente auf der Karte werden nicht beibehalten und große Runen werden nicht beibehalten.

Werden beim Win11-Upgrade die Details der Originalsoftware beibehalten? Werden beim Win11-Upgrade die Details der Originalsoftware beibehalten? Dec 31, 2023 pm 02:49 PM

Die Software ist der wichtigste Teil bei der Verwendung von Computern. Die meisten Benutzer verwenden Computer, um diese Software zu verwenden. Wenn die Software daher beim Upgrade auf Win11 gelöscht wird, verursacht dies große Unannehmlichkeiten. Wenn wir jedoch Win11 normal aktualisieren können, bleibt die gesamte Software erhalten. Sie müssen sich keine Sorgen machen. Bleibt die Software nach dem Upgrade auf Win11 erhalten? Antwort: Die gesamte Software bleibt erhalten. 1. In den offiziellen Fragen und Antworten gab Microsoft an, dass beim Upgrade auf Win11 alle Dateien und Daten erhalten bleiben, was natürlich auch die gesamte Software einschließt. 2. Daher kann jeder das Win11-System mit Zuversicht aktualisieren. 3. Dies bedeutet jedoch nicht, dass wir wichtige Dateien überhaupt nicht sichern können. 4. Weil win11 fertig ist

So behalten Sie nur das Image der Win10-Professional-Version bei So behalten Sie nur das Image der Win10-Professional-Version bei Jan 02, 2024 pm 06:37 PM

Einige Benutzer werden beim Herunterladen und Installieren des Win10-Systems auf einige Probleme stoßen. Wenn die Installation beispielsweise zu einer professionellen Version wird, können wir die Systemversion herunterladen, die Sie verwenden möchten, und sie erneut installieren. Was soll ich tun, wenn das Win10-Image nur die professionelle Version behält? Antwort: Sie können eine Systemversion neu installieren. Es wird empfohlen, die Ein-Klick-Installation von Berry zu wählen. Sie können die Software direkt herunterladen und installieren und dann die gewünschte Systemversion auswählen und dann eine Auswahl treffen. 1. Klicken Sie auf die blaue Schriftart auf der Rückseite, um die Download-Seite aufzurufen. >>>2. Laden Sie nach der Eingabe die Software herunter und bedienen Sie sie. Detaillierte Schritte finden Sie in diesem Artikel. >>>Welches ist besser, Win10 Professional Edition oder Home Edition? Antwort: Siehe

Wie geht PHP mit Dezimalzahlen um? Einführung in verschiedene Methoden Wie geht PHP mit Dezimalzahlen um? Einführung in verschiedene Methoden Mar 28, 2023 pm 03:45 PM

PHP ist eine der beliebtesten Programmiersprachen für die Webentwicklung. In PHP ist die Verarbeitung von Dezimalzahlen sehr wichtig, da wir bei der eigentlichen Programmierarbeit oft präzise Operationen an Dezimalzahlen durchführen müssen. In diesem Artikel werden verschiedene Möglichkeiten zum Umgang mit Dezimalzahlen vorgestellt, um Dezimaloperationen effizienter durchzuführen.

Nutzung der PHP BCMath-Erweiterung: Öffnen Sie die Tür zur hochpräzisen Mathematik Nutzung der PHP BCMath-Erweiterung: Öffnen Sie die Tür zur hochpräzisen Mathematik Feb 23, 2024 am 09:22 AM

Die PHPBCMath-Erweiterung ist ein leistungsstarkes Tool in der PHP-Standardbibliothek. Sie bietet eine umfangreiche Funktionsbibliothek, die komplexe Berechnungen wie große Zahlen, Dezimalzahlen und Brüche verarbeiten kann. Im Vergleich zu den integrierten mathematischen Operatoren und Funktionen von PHP können BCMath-Erweiterungen eine höhere Präzision und ein breiteres Spektrum an Operationen bieten und so den Anforderungen hochpräziser mathematischer Berechnungen in verschiedenen Bereichen wie Wissenschaft, Technik und Finanzen gerecht werden. Um die BCMath-Erweiterung verwenden zu können, müssen Sie den folgenden Code in Ihr PHP-Skript einbinden: Darunter wird die Funktion bcscale() verwendet, um die Anzahl der Nachkommastellen festzulegen. Der Standardwert ist 0, was Nein bedeutet Dezimalstellen bleiben erhalten. Sie können diesen Wert nach Bedarf anpassen, um die Berechnungsgenauigkeit zu steuern

Übersetzen Sie Folgendes ins Chinesische: Geben Sie die ersten k Dezimalstellen von 1/n in einem C-Programm aus, wobei n eine positive ganze Zahl ist Übersetzen Sie Folgendes ins Chinesische: Geben Sie die ersten k Dezimalstellen von 1/n in einem C-Programm aus, wobei n eine positive ganze Zahl ist Aug 28, 2023 pm 07:29 PM

Geben Sie eine Zahl N ein, sodass 1/N die generierte Ausgabe in der angegebenen Dezimalform zurückgibt, bis der Grenzwert erreicht ist. Es ist einfach, Gleitkommazahlen zu verwenden, aber die Herausforderung besteht darin, sie nicht zu verwenden. Eingabe −n=5k=5 Ausgabe −20000 Das heißt, wenn n=5 und k=5 geteilt durch 1/5, sollte die Ausgabe mit 5 Dezimalstellen angezeigt werden. AlgorithmStartStep1->Declareintvariablento9andkto7andremainto1andiStep2->Loopforito0andi<kandi++ Print((10*remain)/n)&n

See all articles