Как я могу установить десятичное значение в SQL (что-то вроде 10.12345678) - PullRequest
1 голос
/ 26 сентября 2019

Не удается сохранить десятичное значение в SQL.Хотите хранить как десятичные (2,8)

Нравится 32.12345678

[Column(TypeName = "decimal(2,8)")]
        [Display(Name = "Latitude")]
        public decimal Latitude { get; set; }

В NuGet Consol

Failed executing DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
CREATE TABLE [DredgingDatas] (
    [Id] int NOT NULL IDENTITY,
    [DredgerId] int NOT NULL,
    [DredgingTime] datetime2 NOT NULL,
    [Density] decimal NOT NULL,
    [Velocity] decimal NOT NULL,
    [Production] decimal NOT NULL,
    [Latitude] decimal(2, 8) NOT NULL,
    [Longitude] decimal(2, 8) NOT NULL,
    [Tide] decimal NOT NULL,
    [DredgeHead] float NOT NULL,
    CONSTRAINT [PK_DredgingDatas] PRIMARY KEY ([Id]),
    CONSTRAINT [FK_DredgingDatas_Dredgers_DredgerId] FOREIGN KEY ([DredgerId]) REFERENCES [Dredgers] ([DredgerId]) ON DELETE CASCADE
);

The scale (8) for column 'Latitude' must be within the range 0 to 2.

1 Ответ

2 голосов
/ 26 сентября 2019

Ваша проблема - небольшое недопонимание десятичного типа данных.Первая часть объявления - это общая длина поля данных, вторая - количество десятичных знаков.

Например: decimal(5,3) показывает точность до 5 общих цифр, 3 из нихдесятичные разряды (12,345).

Я думаю, что вы ищете тип данных decimal(10,8), который дал бы вам всего 10 цифр, причем 8 из них идут после десятичного разряда

Вот ссылка на документацию, которая объясняет, как работает точность;

https://docs.microsoft.com/en-us/sql/t-sql/data-types/decimal-and-numeric-transact-sql?view=sql-server-2017

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...