Sqlite Сохранение значения строки как TEXT или NUMERIC или BLOB [duplicate]

Научная нотация или почему вы не потеряли десятичных знаков

Вы не потеряли десятичных знаков, это просто способ отображения больших чисел MATLAB. MATLAB округляет отображение чисел, как в окне команд, так и в редакторе переменных, на одну цифру перед точкой и четыре после этого, используя научную нотацию. Научная нотация - это Xe+y нотация, где X - некоторое число, а y - целое число. Это означает X раз 10 для мощности y, которую можно визуализировать как «сдвинуть точку вправо для y мест» (или влево, если y отрицательно).

Force MATLAB, чтобы показать вам все ваши десятичные знаки

Теперь, когда мы знаем, что делает MATLAB, можем ли мы заставить его показать нам наш номер? Конечно, для этого есть несколько вариантов, самым простым является установка более длинного format . Наиболее часто используемые для отображения длинных чисел - format long и format longG, разница которых очевидна при использовании их:

format long
A

A =

     8.1472368639e+04

format longG
A

A =

          81472.368639

format long отображает все десятичные числа (до 16 баллов) с использованием научной нотации , format longG пытается отобразить числа без научной нотации, но с большинством доступных десятичных знаков, опять же: столько, сколько есть или до 16 цифр, как до, так и после точки. Всего

решение использует disp(sprintf()) или fprintf , если вам нужно точное число десятичных знаков перед точкой, после точки или обоих:

fprintf('A = %5.3f\n',A) % \n is just to force a line break
A = 81472.369
disp(sprintf('A = %5.2f\n',A))
A = 81472.37

Наконец, помните редактор переменных? Как мы получаем это, чтобы полностью показать нашу переменную? Простой: нажмите на ячейку, содержащую номер:

Итак, словом: мы не потеряли десятичных знаков на этом пути, MATLAB все еще сохраняет их внутренне, он просто показывает меньше десятичных значений по умолчанию.


Другие применения format

format имеют другое приятное свойство, в котором вы можете установить format compact, который избавляется от всех дополнительных пустых строк:

format compact
format long
A
A =
     8.147236863931789e+04
format longG
A
A =
          81472.3686393179

, который, на мой взгляд, очень удобен, когда вы не хотите, чтобы ваше командное окно было очень большим, но не хотите много прокручивать либо.

format shortG и format longG полезны, когда ваш массив имеет в них очень разные числа:

b = 10.^(-3:3);
A.*b
ans =
   1.0e+07 *
    0.0000    0.0001    0.0008    0.0081    0.0815    0.8147    8.1472
format longG
A.*b
ans =
  Columns 1 through 3
              81.472368639              814.72368639              8147.2368639
  Columns 4 through 6
              81472.368639              814723.68639              8147236.8639
  Column 7
              81472368.639
format shortG
A.*b
ans =
       81.472       814.72       8147.2        81472   8.1472e+05   8.1472e+06   8.1472e+07

ie они работают как long и short на одиночные числа, но выбирают наиболее удобный формат отображения для каждого из чисел.

Есть еще несколько экзотических опций, таких как shortE, shortEng, hex и т. д., но те, которые вы можете найти, хорошо описаны в . Собственная документация MathWork на format .

1
задан azimov 28 August 2014 в 12:47
поделиться

2 ответа

В формате файла базы данных в формате SQLite значения TEXT и BLOB точно сохраняются в точно . Единственное отличие состоит в том, что байты значения TEXT считаются действительными UTF-8.

1
ответ дан CL. 24 August 2018 в 04:09
поделиться

Ответ: TEXT

BLOB хорош только для двоичных файлов и, как правило, сохраняет любые двоичные данные (изображения, песни и т. д.) в базе данных, это не очень хорошая идея и должна выполняться только как последняя

Вот список типов данных в SQLite и тип данных из SQL - их соответствующие:

  • INTEGER - INT, INTEGER, TINYINT, SMALLINT , MEDIUMINT, BIGINT, UNIIGNED BIG INT, INT2, INT8
  • ТЕКСТ - ХАРАКТЕР (20), VARCHAR (255), ВАРИАНТНЫЙ ХАРАКТЕР (255), NCHAR (55), NATIVE CHARACTER (70), VARCHAR ( 100), TEXT, CLOB
  • BLOB (не указан тип данных) - NONE
  • REAL - REAL, DOUBLE, DOUBLE PRECISION, FLOAT
  • ЧИСЛЕННЫЙ - ЧИСЛЕННЫЙ, DECIMAL (10,5), BOOLEAN, DATE, DATETIME

Для действительно хорошего руководства по SQLite обратитесь к этому руководству .

1
ответ дан Placeholder 24 August 2018 в 04:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: