は、私はこのような表を作成します。floatの小数点以下の桁数は何ですか?
CREATE TABLE [dbo].[tblBar1M](
[utcDT] [datetime2](7) NOT NULL,
[Ticker] [text] NOT NULL,
[FwdAdjMultiplier] [float] NULL,
[FwdAdjOpen] [float] NULL,
[FwdAdjHigh] [float] NULL,
[FwdAdjLow] [float] NULL,
[FwdAdjClose] [float] NULL,
[ActualClose] [float] NULL,
[ActualLastBid] [float] NULL,
[ActualLastAsk] [float] NULL,
[Volume] [float] NULL,
[Seq] [float] NOT NULL,
CONSTRAINT [PK_tblBar1M] PRIMARY KEY CLUSTERED
(
[Seq] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
私はINSERTコマンドのように作成します。
commandText = "INSERT INTO BT..tblBar1M VALUES(@utcDT,@Ticker,@FwdAdjMultiplier,@FwdAdjOpen,@FwdAdjHigh,@FwdAdjLow,@FwdAdjClose,@ActualClose,@ActualLastBid,@ActualLastAsk,@Volume,@Seq)";
cmdInsertBar1M = new SqlCommand(commandText, conn);
cmdInsertBar1M.Parameters.Add("@utcDT", SqlDbType.DateTime2);
cmdInsertBar1M.Parameters.Add("@Ticker", SqlDbType.NVarChar);
cmdInsertBar1M.Parameters.Add("@Seq", SqlDbType.Float);
cmdInsertBar1M.Parameters.Add("@FwdAdjMultiplier", SqlDbType.Float);
cmdInsertBar1M.Parameters.Add("@FwdAdjOpen", SqlDbType.Float);
cmdInsertBar1M.Parameters.Add("@FwdAdjHigh", SqlDbType.Float);
cmdInsertBar1M.Parameters.Add("@FwdAdjLow", SqlDbType.Float);
cmdInsertBar1M.Parameters.Add("@FwdAdjClose", SqlDbType.Float);
cmdInsertBar1M.Parameters.Add("@ActualClose", SqlDbType.Float);
cmdInsertBar1M.Parameters.Add("@ActualLastBid", SqlDbType.Float);
cmdInsertBar1M.Parameters.Add("@ActualLastAsk", SqlDbType.Float);
cmdInsertBar1M.Parameters.Add("@Volume", SqlDbType.Float);
そして、私はパラメータを入力します。あなたはVS約コメントに見ることができるように
double FwdAdjMultiplier = 1.25;
double baropenMid = 0.727735
cmdInsertBar1M.Parameters["@FwdAdjOpen"].Value = (float)Math.Round(baropenMid * FwdAdjMultiplier,6);
float f = (float)Math.Round(baropenMid * FwdAdjMultiplier, 6);
//f = 909.668762
を検査fは6 DPです。しかし、SSMSのテーブルに挿入した後は、FwdAdjOpen(***に囲まれています)にはさらに多くのDPがあります。
なぜですか?
utcDT Ticker FwdAdjMultiplier FwdAdjOpen FwdAdjHigh FwdAdjLow FwdAdjClose ActualClose ActualLastBid ActualLastAsk Volume Seq
2016-04-28 14:23:00.5885822 GL 1.25 ***909.668762207031*** 909.825012207031 904.681274414063 906.150024414063 724.919982910156 724.640014648438 725.200012207031 509600 6
ここで、間違ったデータを見ていますか? SQL Server Management Studioでは? –
はい。私はこの質問を調整しました – ManInMoon
質問はすでに答えられていますが、FYI、 'baropenMid'と' FwdAdjMultiplier'の値はあなたが与えた値に乗算されません。あなたのコードの 'f 'は' 0.909669'を返します – Quantic