Нет, точность не должна сохраняться.Двоичные значения с плавающей запятой не сохраняют эту информацию ... и было бы несколько странно делать это, учитывая, что вы выражаете значение в одной базе, даже если оно представлено в другой.
НадеюсьНе знаю, имеет ли VB6 десятичный тип с плавающей запятой, но это, вероятно, то, что вы хотите - или, возможно, десятичный тип с фиксированной запятой.Конечно, в .NET System.Decimal
сохранил дополнительные 0 с .NET 1.1 и далее.Если это вам не поможет, вы можете подумать о запоминании двух целых чисел - например, «90000» и «100000» в этом случае, так что значение, которое вы представляете, представляет собой одно целое число, деленное на другое, с соответствующим уровнем точности.
РЕДАКТИРОВАТЬ: Я думал, что Currency
может быть то, что вы хотите, но в соответствии с этой статьей , это зафиксировано в 4 десятичных разрядах, и вы пытаетесь сохранить 5. Вы могли быпотенциально просто умножьте на 10, если вы всегда хотите 5 десятичных разрядов - но это неуклюжая вещь, которую нужно не забывать делать везде ... и вам нужно будет решить, как правильно отформатировать ее.Подозреваю, что всегда будет 4 десятичных знака, даже если бы вы указали меньше - так что если вы хотите, чтобы «0.300» отличался от «0.3000», тогда Currency
может быть неуместным.Я полностью основываюсь на статьях онлайн, хотя ...