首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >双类型的不动点表示

双类型的不动点表示
EN

Stack Overflow用户
提问于 2013-07-09 05:34:57
回答 1查看 2.2K关注 0票数 1

我正在尝试将双精度类型转换为固定类型表示。根据所选的输入,我的原始值可以是例如0.00996、989.15、1600.25、89.72等等。这里的要点是,我的所有输入值都是正数,但小数位之前(和之后)的位数可以改变。我正在尝试通过适当的缩放将这些双精度类型转换为定点表示。我尝试了2.14缩放(乘以16,384),但不确定如何将其扩展到小数位前的可变位数的情况。另外,如何才能最好地确保转换后的值具有最大的准确性/精确度?任何帮助都将不胜感激。谢谢。

我正在使用的代码:

代码语言:javascript
代码运行次数:0
运行
复制
fixedScale = (int) Math.Pow(2.0, 64.0);
int new_val = (int) (fixedScale * value);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-09 05:41:55

如果你想要一个固定点表示,那么你只需要决定比例。一旦您决定将浮动转换为固定,如下所示:

代码语言:javascript
代码运行次数:0
运行
复制
int fixedValue = (int)Math.Round(floatValue*Scale);

在另一个方向,就像这样:

代码语言:javascript
代码运行次数:0
运行
复制
double floatValue = (double)fixedValue/Scale;

至于使用什么尺度,这取决于您试图实现的目标以及输入数据是什么。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17536363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档