Вы не потеряли десятичных знаков, это просто способ отображения больших чисел MATLAB. MATLAB округляет отображение чисел, как в окне команд, так и в редакторе переменных, на одну цифру перед точкой и четыре после этого, используя научную нотацию. Научная нотация - это Xe+y
нотация, где X
- некоторое число, а y
- целое число. Это означает X
раз 10
для мощности y
, которую можно визуализировать как «сдвинуть точку вправо для y
мест» (или влево, если y
отрицательно).
Теперь, когда мы знаем, что делает 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
.
В формате файла базы данных в формате SQLite значения TEXT и BLOB точно сохраняются в точно . Единственное отличие состоит в том, что байты значения TEXT считаются действительными UTF-8.
BLOB хорош только для двоичных файлов и, как правило, сохраняет любые двоичные данные (изображения, песни и т. д.) в базе данных, это не очень хорошая идея и должна выполняться только как последняя
Вот список типов данных в SQLite и тип данных из SQL - их соответствующие:
blockquote>
- 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 обратитесь к этому руководству .