Doctrine 2 で 10 進数のフィールドタイプを指定するときの scale と precision の意味は?
質問
Symfony2アプリケーションのために、Doctrine2で財務数値を保持するための10進数フィールドを作成しています。
現在はこのような感じです。
/**
* @ORM\Column(type="decimal")
*/
protected $rate;
値を入力し、その値がデータベースに永続化されたとき、その値は整数に丸められました。私は、フィールドの精度とスケールのタイプを設定する必要があると推測していますが、それらが何をするのか正確に説明してくれる人が必要です。
その Doctrine2 ドキュメント にはこう書かれています。
精度。10進数(正確な数値)カラムの精度(10進数カラムにのみ適用されます。)
スケール。10進数(正確な数値)カラムのスケール(10進数カラムにのみ適用されます。)
でも、これだけではよくわからないですよね。
precisionは四捨五入する小数点以下の桁数だと思うので、2でいいと思うのですが、scaleは何でしょうか?スケールとは有効数字でしょうか?
フィールド宣言はこうすればいいのでしょうか:-)
/**
* @ORM\Column(type="decimal", precision=2, scale=4)
*/
protected $rate;
どのように解決するのですか?
Doctrine は SQL の型と似たような型を使用します。10進数はたまたま固定精度の型です (フロートと異なります)。
から引用した MySQL ドキュメント :
<ブロッククオートDECIMAL列の宣言では、精度とスケールを指定することができます(通常はそうします)。
給料 DECIMAL(5,2)
この例では、5が精度、2が目盛りになります。精度は値に対して格納される有効桁数を表し、スケールは小数点の後に格納できる桁数を表します。
標準SQLでは、DECIMAL(5,2)が5桁と小数点以下2桁の任意の値を格納できることを要求しているので、salary列に格納できる値は-999.99から999.99までの範囲となります。
関連
-
[解決済み】type()とisinstance()の違いは何ですか?)
-
[解決済み】MySQLの`unsigned`の意味と使用するタイミングは?
-
[解決済み】データベース内の数値の精度やスケールを解釈する方法は?
-
[解決済み] リレーショナル・データベースにおけるカタログとスキーマの違いは何ですか?
-
[解決済み] データベースに郵便番号を格納する必要があります。カラムの大きさはどのくらいにすればよいでしょうか?
-
[解決済み] H2データベースを管理するフロントエンドツール【終了しました
-
[解決済み] 正規化された電話番号をデータベースに格納するための規格はありますか?
-
[解決済み] PostgreSQL どのクエリが実行されたかを確認する方法
-
[解決済み] ライブデータベースで気をつけるべきことNo.1とは?[クローズド]
-
PostgreSQLのパスワードのデータ型は何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] なぜORMを使う必要があるのですか?[クローズド]
-
[解決済み] データベースのインデックスはいくつあっても足りない?
-
[解決済み] DB2とOracleから見たCLOBとBLOBの違いとは?
-
[解決済み] 非リレーショナルデータベース設計【終了しました
-
[解決済み] SQL Developerで新しい接続を追加する際にOracle TNSの名前が表示されない
-
[解決済み] なぜデータベースは常に円柱で表現されるのですか?[クローズド]
-
[解決済み] 営業時間のデータベースへの格納
-
[解決済み] 人名と性別を対応させるのに適したライブラリをご存知の方はいらっしゃいませんか?[クローズド]
-
[解決済み] 二相コミットはどのように最後の一秒の失敗を防ぐのか?
-
Oracleの数値のデフォルトの精度とスケールは何ですか?