- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我编写了一个系统,可以将任何基数 (2-36) 转换为另一个整数基数,并且它可以将任何实数从基数 10 转换为任何其他基数 (2-36)。
我的问题是将有理数/无理数从 10 以外的任何基数转换为另一个基数。
我使用以下算法进行小数点右侧的转换:
1)取输入中小数点的右边(0.xxxxxx--->),乘以你要转换的基数。
2)取大于一的数(点的左边),加到转换后的数的右边。
3)取乘积的右边,在下一次重复中使用它作为乘数(乘以基数)
4)重复直到满意或留下一个整数(右侧为0)。
这对于将任何浮点数从十进制转换为另一个基数非常有效,但显然您不能从不是十进制的基数转换。
所以我尝试的是将小数点右边的初始值转换为基数 10,执行数学部分,然后将其转换回原始基数,以便在我将其添加到输出值时(它之前已转换为新基数)正在添加)。
不幸的是,这会返回小数点右侧的错误结果。因此,如果从不是 10 的基数转换而来,我的答案在左侧总是正确的,但在右侧是不正确的。
有没有人对如何使这项工作有任何想法?或者也许它不会?
编辑
或者,任何人都可以链接我/告诉我如何将有理的十六进制值转换为十进制?仅此一项就足以让我解决这个问题。
解决方案
我为将来阅读此问题的任何其他人找到了解决此问题的相当简单的方法。
您所要做的就是取小数点右侧的数字(无论基数如何)并将其转换为十进制数(您可以查看如何转换整数 here )。然后取该数字并将其除以其中的最大位值。例如:
A.C
C == 12 (dec)
12 / 16 = .75 (this is the fractional value in decimal)
最佳答案
使用浮点意味着您不想执行准确的计算。
只有以 2、4、8、16 为底的数字才能在 Java 中准确表示 floating point值(不考虑整数)。这是由于浮点表示的局限性。
只有以 2, 4, 5, 8, 10, 16, 20, 25, 32,... 为基数的数字才能以十进制准确打印。这是由于我们的 decimal number system 的限制.
我希望您因此应该调整一些关于结果舍入的规则,并在整个算法中实现这些规则。确保你舍入而不是截断,否则即使在 double
的精度的情况下,通过浮点也会给你错误的结果。 type 足以满足您的目的,或者可以准确表示数字。
如果您想以更高的精度执行计算,请查看 BigInteger
类并专门以整数重新设计您的算法。或者,使用 library用于处理分数;这很有用,因为算法的输入始终可以准确地表示为一个分数。然而,最终它总是归结为定义结果舍入规则并正确实现它们。
编辑 :
0.1111
在三元中,那么您知道输出位于 0.49382716
之间和 0.50617284
在此阶段,您甚至无法发出小数点后的第一个十进制数字。这对于避免看到类似 0.4999999992
的输出是必要的。最“理性”的投入。 0.1111
三进制将转换为十进制的 0.5。 (如果您仅限于十六进制到十进制的转换,则可以忽略这一点。)关于java - 基本转换 : issue with fractions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10972276/
我不知道我做了什么来破坏我的 QtCreator,但是“突然”我所有的编译器问题(警告/错误)不再显示在问题面板中,而是只显示在“编译输出”面板中(我在那里不能使用它们通过单击跳转到错误代码)。 在“
我正在制作游戏作为自学。 我的目标是在鼠标指针后面有一条轨迹。(这有效)但是,当我在 chrome 上打开并运行它时。在达到一定的高度和宽度后,轨迹保留在 Canvas 上而不是被擦掉。谁能帮我解决这
我希望通过在我的HTML文件中适当地格式化我的网站上的文本来增强它的外观。具体地说,我希望确保我的HTML文件中的代码在网站上显示得很好。此外,我正在寻求帮助实现我的网站导航栏。,我希望和其他内容显示
我希望通过在我的HTML文件中适当地格式化我的网站上的文本来增强它的外观。具体地说,我希望确保我的HTML文件中的代码在网站上显示得很好。此外,我正在寻求帮助实现我的网站导航栏。,我希望和其他内容显示
我希望通过在我的HTML文件中适当地格式化我的网站上的文本来增强它的外观。具体地说,我希望确保我的HTML文件中的代码在网站上显示得很好。此外,我正在寻求帮助实现我的网站导航栏。,我希望和其他内容显示
我一直在尝试将背景图像添加到 html 文档中元素的边框: 你可以在这里看到:HTML: Something CSS: a { border-width:10px; border-co
我即将开始一个连接两个程序的项目,一个用c#,一个用c++。我已经有一个可以工作的 c# 程序,它能够与自身的其他版本对话。在开始使用c++版本之前,我想到了一些问题: 1) 我正在使用 protob
我正在尝试线程优先级的影响,当 run 方法中的 println 保留在注释中时,两个线程同时结束,我不理解这种行为,你能解释一下吗?谢谢。 主类 public class Main { public
jQuery 1.4: $('#menu li:last:not(.ignore)').addClass('last'); HTML: item 1 ite
当我创建或查看问题时,我想从Mantis问题跟踪系统中删除选择配置文件及其所有随附字段,因为这些问题与我要创建的任何问题都不相关。 其中包括配置文件部分随附的“平台”,“操作系统”和“操作系统版本”字
我不在Master分支上工作。我正在开发另一种newFeature,该功能也发布在github上。 我知道在处理Master分支时如何解决问题:Closes #XXX。 但是,这仅在我在Master分
我需要在一些UICollectionViewCell中画一个圆圈。具有不同颜色边框和背景颜色的圆圈。我的代码。 UICollectionViewController - (UICollectionVi
我们将Trac用于我正在从事的开源项目。我想将所有公开票导出到Github的Issues。我已经找到了一些可能的小型脚本,但是我想知道是否有人这样做并提出了建议。 理想情况下,它将trac的描述语法转
我对 iOS 编程还比较陌生,但在其他语言(主要是 C# 和 Java)方面拥有丰富的编程经验。 我正在尝试为 iPad 设备的某些产品制作一个类似图片库的东西,其中包含指定的类别。用户界面非常简单,
我已经在中间人中激活了 I18n,如下所示: activate :i18n, mount_at_root: :de 现在我想自动从 / 重定向到 /de。这可能吗? 另外,我想知道为什么中间人使用 p
我已经成功编写了一个程序,可以从 Excel 文件中读取数据并将它们存储在 mysql 的表中。我的程序读取每个文件的第一行,创建表的字段,并将其余数据存储为每列中的值。正是因为这种情况以编程方式发生
这是我的代码。 function m1() { return new Promise(function(resolve, reject) { var files = $('#aws-upl
谁能告诉我这是怎么回事? #include #include #include #include #include class writeManager { std::vector
compile 'com.github.RogaLabs:social-login:1.2.1' compile 'com.github.mukeshsolanki:social-login-help
我有一个巨大的 csv 文件,其中包含 149 列 和 25K+ 行,可以在 MySQL 中上传该文件> 我正在使用MySQL LOAD DATA 查询 表我的查询是: LOAD DATA local
我是一名优秀的程序员,十分优秀!