2011-08-11 13 views
2

ここに私の問題があります。私たちのデータベースに価格設定をしようとしていますが、何らかの理由で10.00から10または10.50から10.5に変換してしまいます。後ろのゼロはデータベースに入っていません

/それは私たちが数を入力する場所を介してすべての道をチェック0.00

アイブストリッピングされた場合理由として、本当に混乱しImはので.... 10.00 =私はSQL文をチェックし、それが価格語りますINSERTまたはUPDATEの最後のステップで、UPDATEまたはINSERTまでの間、末尾の0をすべて保持してから、テーブルをチェックすると、0が破棄されます。

+0

フィールドのタイプは何ですか? –

+0

私はちょうどDBの列をダブルチェック.... hmmmmありがとうmitch、私はそれをフォーマットしようとすることに取り組むでしょう – Ray

+3

注:monetry値を格納するために二重のデータ型を使用して、非常に注意してください.... –

答えて

8

データの保存にはdecimal(N,2)タイプなどを使用していますか?もしそうでなければ、これは正常な動作です。 http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html

を参照してください。別の回答のアドバイスに従わずにプレゼンテーション層に残してください。ジョブを正しく実行し、正確な小数値を格納してください。あなたは丸めの問題を避けることができます。

psまた、使用している言語によらずに値がどのように管理されているかという別の問題もあります。うまくいけば、それは適切な書式設定を含む特殊なタイプを使います。そうでない場合は、コード内の値をどのように扱うか心配したいかもしれません(1つの可能性は100倍にして整数の整数を使用しますが、数学が正しく丸められるように注意する必要があります)それは理由のために複雑です;もしあなたが倍精度ですべてを詰め込むなら、それは単純であるかもしれませんが、特定の値に対していくつかの奇妙なバグがあります...)

+0

+1あなたは正しいです私はそれが '価格'の列であることに気づく前に、OPの質問に私の最初のコメントをタイプしました –

+0

私は二重を使用しています、私は小数に変更しようとします – Ray

+0

Works Perfectly !! !! どうもありがとうございます!!! – Ray

0

10は10.00と同じですが、末尾に数字を表示したい場合、または小数点以下2桁で表示する場合は、10.0

と同じです。これを行うにはコードを記述する必要があります。あなたが使用している言葉はあなたが言っていないので、私はその部分であなたを本当に助けることはできません。

+0

データはオブジェクトを介してオブジェクトを介して取得されます – Ray

+0

ここを見て - http://stackoverflow.com/questions/324358/zero-pad-digits-in-string –

0

それはデータベースでどのように見えるかは関係ありません。重要なのは、アプリにデータをどのように表示するかです。 10.00は10と同じ値なので、データテーブルでは10として保存されます。

出力前に番号をフォーマットする必要があります。

関連する問題