Java 限制双精度数字的聪明方法是什么?
我必须管理以下范围内的双打: 从Java 限制双精度数字的聪明方法是什么?,java,algorithm,Java,Algorithm,我必须管理以下范围内的双打: 从0000001到999.999999999 我想要达到的是减少这个数字,只考虑6个更重要的数字 这意味着对于数字:100.000123 我想得到100.000 鉴于编号:12123456 我想得到121234 对于0123456 我想获得0123456 对于0'000001 我想获得0'000001 有什么聪明的方法可以做到吗? 谢谢 我相信有一些聪明的方法可以使用regex来实现这一点,但这里有一种低效的方法: double d = ... String s
0000001
到999.999999999
我想要达到的是减少这个数字,只考虑6个更重要的数字
这意味着对于数字:100.000123
我想得到100.000
鉴于编号:12123456
我想得到121234
对于0123456
我想获得0123456
对于0'000001
我想获得0'000001
有什么聪明的方法可以做到吗?
谢谢 我相信有一些聪明的方法可以使用regex来实现这一点,但这里有一种低效的方法:
double d = ...
String s = Double.toString(d);
s = s.substring(0, Math.min(s.startsWith("0") ? 8 : 7, s.length()));
d = Double.parseDouble(s);
使用现有的格式化程序应该是可能的,我将很快进行研究,如果发现任何问题,将更新此答案。
((long)(myDouble*1000000))/10000000000d?
Hmm,您为什么要这样做?你本质上是想消除一些双重标准的准确性?你的问题只包含要求-它并没有显示出你方面为自己解决这个问题所做的任何努力。请添加您对此问题的尝试-因为此网站不是免费的“我们为您(家庭)工作”服务。除此之外:请转到第页了解如何/问什么。Thanks@Bohemian,您的解决方案不起作用,我认为。。。ThomasCook,确切地说,出于演示的原因,我想降低一些准确性。阿兹罗,我不同意你的观点。我不想让我失败的回答产生偏见。可能重复感谢雅各布,因为这个问题已经被否决和批评,我在这里做了另一个:更准确的描述。否决的问题不是打开另一个问题的借口:P