Я заметил, что когда я сохраняю двойное значение, такое как, например, x = 0.56657011973046234
, в базе данных sqlite, а затем извлекаю его позже, я получаю y = 0.56657011973046201
.В соответствии со спецификацией sqlite и спецификацией .NET (ни то, ни другое из того, что я изначально не удосужился прочитать :), это ожидается и нормально.
Моя проблема в том,высокая точность не важна, мое приложение имеет дело с тем, что пользователи вводят / выбирают двойные числа, которые представляют основную трехмерную информацию, а затем запускают симуляции на них, чтобы найти результат.И эти входные данные могут быть сохранены в базе данных sqlite для повторной загрузки и повторного запуска позже.
Путаница возникает из-за того, что вновь созданная серия входных данных, очевидно, будет немного отличаться от тех же самых входных данных после сохранения и перезагрузки(поскольку двойные значения изменились).Это логично, но не желательно.
Я не совсем понял, как с этим справиться, но пока я хотел бы ограничить / ограничить вводимые пользователем значения, которые могут быть точнохранится в базе данных sqlite.Поэтому, если пользователь вводит 0.56657011973046234
, он фактически преобразуется в 0.56657011973046201
.
Однако я не смог выяснить, учитывая число, какое значение будет храниться в базе данных, если не считать фактического хранения и извлечения его из базы данных, что кажется неуклюжим.Есть ли установленный способ сделать это?