2 つの数値num1(p1,s1)
とがあるとしますnum2(p2, s2)
(ここでp
、 とs
はそれぞれ精度とスケールです)。
num1
timesの結果の精度とスケールを計算するためのルールは何num2
ですか?
直感的には、スケールは と の合計にs1
なりs2
ます (なぜなら、それが 1 年生で乗算を行う方法だからです!) が、精度を見つけるためのルールがわかりません。
ありがとう。
質問の構文はSQLではないため、次のような2つの数値を宣言したと思います。
CREATE TABLE decimals (num1 DECIMAL(p1,s1), num2 DECIMAL(p2,s2));
精度は数値が格納される桁数であり、スケールは小数点以下の桁数です。
したがって、乗算の結果としてのスケールは になりますs1 + s2
が、最大精度も sum になりp1 + p2
ます。乗算される数値によっては、実際の精度はこれよりも低くなる可能性があります。
例
として保存できる数字から始めますDECIMAL(2,1)
:
SELECT 9.9 * 9.9;
98.01
として保存できるものを与えDECIMAL(4,2)
ます。
SELECT 9.9 * 0.5;
4.95
として保存できるものを与えますDECIMAL(3,2)