oracle保留两位小数解决方案

Jun 07, 2016 pm 05:55 PM
予約する 10進数

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

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

JavaScriptで整数を10進数に変換する方法 JavaScriptで整数を10進数に変換する方法 Nov 03, 2021 pm 05:59 PM

JavaScript では、toFixed() 関数を使用して、整数を 10 進数に変換できます。この関数は、整数を、指定された小数点以下の桁数を持つ数値に変換できます。構文は「number.toFixed(x)」です。パラメータ「x」は小数点以下の桁数を指定します。

Python のround() 関数: 指定した桁の小数を保持する Python のround() 関数: 指定した桁の小数を保持する Nov 18, 2023 pm 05:35 PM

Python のround() 関数: 指定された小数点以下の桁数を保持する、特定のコード例が必要 概要: Python プログラミングでは、多くの場合、指定された小数点以下の桁数を保持するために浮動小数点数を丸める必要があります。この問題を解決するために、Python にはround() 関数が用意されています。この記事では、round() 関数の使用法を紹介し、いくつかの具体的なコード例を示します。 round() 関数の使用法:round() 関数は Python の組み込み関数であり、浮動小数点数を 4 倍にするために使用されます。

エルデン・フランス・ツアーの第2ラウンドでは何が残されるのでしょうか? エルデン・フランス・ツアーの第2ラウンドでは何が残されるのでしょうか? Mar 11, 2024 pm 02:31 PM

エルデンズリングでゲームをプレイする場合、プレイヤーはレベルをクリアした後、2 番目のゲームを開くこともできます。多くのプレイヤーは 2 番目のゲームで何が保持されるのか知りません。キャラクターの属性と戦闘効果に関するものは 2 番目のゲームでも保持されます。ゲーム。エルデンズ サークルの 2 ラウンドでは何が保持されますか? 1 ラウンドと 2 ラウンドでは、レベル、装備、小道具のみが継承されます。 2.エルデンズサークル2周目のレベル、装備、武器、祈り、魔法、遺灰、アミュレット、デットル、戦灰等は引き継がれます。 3. 単純に装備リストとして理解できる装備リスト内のすべては、武器の強化レベルを含めて予約されています。 4. すべてのキャンプファイヤーとプロット関連の小道具は継承されず、マップ上のコレクション要素も保持されず、大きなルーンも保持されません。

Win11 アップグレードでは、元のソフトウェアの詳細が保持されますか? Win11 アップグレードでは、元のソフトウェアの詳細が保持されますか? Dec 31, 2023 pm 02:49 PM

パソコンを使う上で最も重要なのはソフトウェアであり、基本的にほとんどの人がパソコンを使ってこれらのソフトウェアを使用しているため、win11にアップグレードする際にソフトウェアがクリアされてしまうと大変不便をおかけします。ただし、win11 を正常にアップグレードできれば、すべてのソフトウェアが保持されますので、心配する必要はありません。 win11 にアップグレードした後もソフトウェアは保持されますか? 回答: すべてのソフトウェアは保持されます。 1. Microsoft は公式 Q&A で、win11 にアップグレードすると、すべてのファイルとデータが保持され、もちろんすべてのソフトウェアが含まれると述べています。 2. したがって、誰もが安心して win11 システムをアップグレードできます。 3. ただし、これは実際には、重要なファイルをまったくバックアップできないという意味ではありません。 4.win11が終わったので

win10プロフェッショナル版のイメージだけを残す方法 win10プロフェッショナル版のイメージだけを残す方法 Jan 02, 2024 pm 06:37 PM

win10 システムをダウンロードしてインストールするときに、一部のユーザーで問題が発生することがありますが、たとえば、インストールがプロフェッショナル バージョンになった場合は、使用したいシステム バージョンをダウンロードして再インストールできます。 win10 イメージにプロフェッショナル バージョンのみが残っている場合はどうすればよいですか? 回答: システム バージョンを再インストールできます。 Berry のワンクリック インストールを選択することをお勧めします。ソフトウェアを直接ダウンロードしてインストールし、必要なシステム バージョンを選択してから選択することもできます。 1. 後ろの青いフォントをクリックしてダウンロードページに入ります。 >>>2. 入力後、ソフトウェアをダウンロードして操作します 詳しい手順はこちらの記事をご覧ください。 >>>Win10 Professional Edition と Home Edition はどちらが優れていますか? 回答: を参照してください。

PHP は小数をどのように処理しますか?さまざまな手法の紹介 PHP は小数をどのように処理しますか?さまざまな手法の紹介 Mar 28, 2023 pm 03:45 PM

PHP は、Web 開発で最も人気のあるプログラミング言語の 1 つです。実際のプログラミング作業では、小数に対して正確な演算を実行する必要があることが多いため、PHP では小数の処理が非常に重要です。この記事では、小数演算をより効率的に実行するために小数を扱ういくつかの方法を紹介します。

PHP BCMath 拡張機能の活用: 高精度数学への扉を開く PHP BCMath 拡張機能の活用: 高精度数学への扉を開く Feb 23, 2024 am 09:22 AM

PHPBCMath 拡張機能は、PHP 標準ライブラリの強力なツールで、大きな数値、小数、分数などの複雑な計算を処理できる豊富な関数ライブラリを提供します。 PHP の組み込み数学演算子や関数と比較して、BCMath 拡張機能は、科学、工学、金融などのさまざまな分野での高精度数学計算のニーズを満たす、より高精度で幅広い演算を提供できます。 BCMath 拡張機能を使用するには、PHP スクリプトに次のコードを含める必要があります: このうち、bcscale() 関数は、小数点以下の桁数を設定するために使用されます。デフォルト値は 0 です。小数点は保持されます。必要に応じてこの値を調整して、計算精度を制御できます。

次を中国語に翻訳します。C プログラムの 1/n の小数点以下の最初の k 桁を出力します。n は正の整数です。 次を中国語に翻訳します。C プログラムの 1/n の小数点以下の最初の k 桁を出力します。n は正の整数です。 Aug 28, 2023 pm 07:29 PM

制限に達するまで、1/N が 10 進数で指定された形式で生成された出力を返すような数値 N を入力します。浮動小数点数を使用するのは簡単ですが、難しいのはそれを使用しないことです。入力 −n=5k=5 出力 −20000 これは、n=5 および k=5 を 1/5 で割った場合、出力を小数点以下 5 桁まで表示する必要があることを意味します。 AlgorithmStartStep1->Declareintvariablento9andkto7andremainto1andiStep2->Loopforito0andi<kandi++ Print((10*remain)/n)&n

See all articles