Вверх ↑
Этот топик читают: Гость
Ответов: 16884
Рейтинг: 1239
#1: 2020-08-25 22:20:49 ЛС | профиль | цитата
Секрет только в "/" (деление)
Если делить целое на целое, то выполняется целочисленное деление (div)
Для получения реального результата необходимо делимое преобразовать в тип REAL.
Это можно сделать несколькими способами:
1. Умножить делимое на 1.0, например, 10 * 1.0 / 3
2. Использовать преобразователь типов SQL:
cast(10 AS REAL)
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
файлы: 1div_mod.rar [687B] [298]
Голосовали:zhorik5
vip
#1.1контекстная реклама от партнеров
Ответов: 16884
Рейтинг: 1239
#2: 2020-08-26 10:06:36 ЛС | профиль | цитата
Разделить десятичное число на целую и дробную части
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1split_decimal.rar [858B] [327]
Ответов: 16884
Рейтинг: 1239
#3: 2020-08-26 18:37:38 ЛС | профиль | цитата
Информационная строка
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1infoDTSTRSQL.rar [957B] [337]
Ответов: 107
Рейтинг: 0
#4: 2020-08-26 18:44:22 ЛС | профиль | цитата
Tad, Спасибо!
карма: 0

0
Ответов: 4621
Рейтинг: 746
#5: 2020-08-27 14:14:44 ЛС | профиль | цитата
Tad, а в SQLlite число "1.0" трактуется как с плавающей точкой или как с фиксированной?

Редактировалось 1 раз(а), последний 2020-08-27 14:15:00
карма: 26

0
Ответов: 16884
Рейтинг: 1239
#6: 2020-08-28 08:14:11 ЛС | профиль | цитата
Netspirit, никогда не заморачивался таким вопросом.
Вообще-то SQLite написана на С++, а, как известно, фиксированная точка напрямую не поддерживается языками программирования, такими как C и C ++, хотя библиотеки для этой поддержки существуют.
В авторском описании SQLite не встречал.
-- Работают без проверок
SELECT cast(10 AS real) / 3;
SELECT 10 * 1.0 / 3;

-- Те, что ниже, тоже работают, но:
-- Тут необходимо применять ()
SELECT (10+0.0) / 3;

-- Тут предварительно проверить на 'e'
SELECT 10||'e0' / 3;

-- Тут предварительно проверить на '.'
SELECT 10||'.' / 3;

Редактировалось 3 раз(а), последний 2020-08-28 10:14:55
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 16884
Рейтинг: 1239
#7: 2020-09-09 15:07:40 ЛС | профиль | цитата
От моего правнука.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1New_Year.rar [930B] [323]
Ответов: 4621
Рейтинг: 746
#8: 2020-09-09 16:27:32 ЛС | профиль | цитата
Tad писал(а):
а, как известно, фиксированная точка напрямую не поддерживается языками программирования
Ну, зато на эту тему что-то может быть написано в стандарте SQL...
То-есть, если число трактуется как с фиксированной точкой, то (10 * 1.0 / 3) даст не "3.3333333333..." с плавающей, а даст "3.3" с фиксированной.

Редактировалось 2 раз(а), последний 2020-09-09 16:30:50
карма: 26

0
Ответов: 16884
Рейтинг: 1239
#9: 2020-09-09 19:26:18 ЛС | профиль | цитата
Netspirit,
Tad писал(а):
В авторском описании SQLite не встречал.

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
9
Сообщение
...
Прикрепленные файлы
(файлы не залиты)