Next Page

1

Previous Page

Thread: NumberFormatで正しく表示されない

Created on: 12/03/10 06:45 AM

Replies: 4

nyannyan


新米


Joined: 11/26/08

Posts: 17

NumberFormatで正しく表示されない
12/03/10 11:16 AM

どなたかご教授お願いします。

整数値12桁、小数値5桁の数値項目があります(SQL Server2005)
この項目を画面に表示したいのですが、正しく表示されません。

#NumberFormat(項目,"999,999,999,999.99999")#
#NumberFormat(項目,"___,___,___,___._____")#

999999999999.99990〜999999999999.99993の場合は999999999999.99990に、
999999999999.99994〜999999999999.99999の場合は1,000,000,000,000.00000と表示されてしまいます。

どちらの形式で表示しても同じです。

正しく表示する方法はないでしょうか?

よろしくお願いいたします。

Link | Top | Bottom

AXL


長老


Joined: 02/02/08

Posts: 246

Re: NumberFormatで正しく表示されない
12/03/10 2:07 PM

数値としてではなく、文字(string)として出力してあげればいいのでは。

Link | Top | Bottom

nyannyan


新米


Joined: 11/26/08

Posts: 17

Re: NumberFormatで正しく表示されない
12/03/10 2:26 PM

お返事ありがとうございます。

文字として出力するというのは・・・?

SQLのSELECT文側でカンマ編集までしてCF側では
何も編集なしで表示するということでしょうか?

Link | Top | Bottom

AXL


長老


Joined: 02/02/08

Posts: 246

Re: NumberFormatで正しく表示されない
12/03/10 3:38 PM

確か前にも似たような質問があったような。
ColdFusionに限らず、小数値の扱いは桁が増えるほど正確さを保つのが難しいので、表示するだけならこんな感じで簡単に質問のようなフォーマットで表示できますよ。
データベースにどのように値を保存しているのか分かりませんが、数値としてならSQL構文内でSTRなどを使って文字(string)に変換しておいてください。

質問のようにフォーマットしたければ、(クエリーから返ってきた数値をqRead.numと仮にします)
<cfset number=ListFirst(qRead.num, '.')> <!--- 小数点前の数値 --->
<cfset decimal=ListLast(qRead.num, '.')> <!--- 小数点後の数値 --->
<cfoutput>#NumberFormat(number, ',')#.#deciaml#</cfoutput>

Link | Top | Bottom

nyannyan


新米


Joined: 11/26/08

Posts: 17

Re: NumberFormatで正しく表示されない
12/03/10 3:45 PM

回答ありがとうございます。

似たような質問ありましたか・・・
うまく探せなかったです、すみません。

整数値と小数値を分けて編集するんですね。
思いつきませんでした。目からウロコです!!

早速やってみます。

どうもありがとうございました。

Link | Top | Bottom

Next Page

1

Previous Page

New Post

Please login to post a response.