Я пытаюсь преобразовать тип double в представление фиксированного типа. В зависимости от выбранного ввода мои необработанные значения могут быть, например, 0,00996, 989,15, 1600,25, 89,72 и так далее. Дело в том, что все мои входные значения всегда положительны, но количество цифр до (и после) десятичного знака может варьироваться. Я пытаюсь преобразовать эти двойные типы в представление с фиксированной точкой с помощью подходящего масштабирования. Я пробовал масштабирование 2.14 (умножить на 16 384), но не уверен, как распространить это на случай переменного количества цифр до десятичного знака. Кроме того, как я могу лучше всего обеспечить максимальную точность/точность в преобразованных значениях? Любая помощь будет принята с благодарностью. Спасибо.
Код, который я использую:
fixedScale = (int) Math.Pow(2.0, 64.0);
int new_val = (int) (fixedScale * value);
Decimal new_value = (Decimal)original_value
- person Basic   schedule 09.07.20130 - Int.MaxValue
, вам нужно будет знать максимально возможное входное значение. Если вы этого не знаете, любой выбранный вами масштаб в какой-то момент переполнится. - person Basic   schedule 09.07.2013