【发布时间】:2013-07-08 21:34:57
【问题描述】:
我正在尝试将双精度类型转换为固定类型表示。根据选择的输入,我的原始值可以是例如 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);
【问题讨论】:
-
您使用 int 而不是小数是否有原因?
Decimal new_value = (Decimal)original_value -
你想要定点还是浮点?我很困惑。如果你想要固定点,那么只需决定你的比例并乘以。我不明白你为什么谈论可变位数。这对我来说听起来不是很固定。
-
固定比例表示是 int
-
我需要定点表示。
-
那么,解释一下可变位数的来源?
标签: c# fixed-point