我需要将一个double存储为一个string。 我知道如果我想显示它,我可以使用printf ,但我只是想将它存储在一个stringvariables中,以便稍后(作为值而不是键 )将其存储在地图中。
可能重复: C程序devise师 可能我的问题很简单和愚蠢。 我想存储一个分区的值,特别是1 / x ,其中x是一个整数值。 int x = 17; double result = 1/x; 我试图做到这一点,但我总是得到0.000000 …我尝试input一个固定的值,例如1/17但总是得到相同的值..什么是错误的?
所以我有一个双重设置等于1234,我想移动一个小数点,使其12.34 所以要做到这一点,我把两倍乘以1到1234,就像这样 double x = 1234; for(int i=1;i<=2;i++) { x = x*.1; } System.out.println(x); 这将打印结果“12.340000000000002” 有没有一种方法,而不是简单地格式化到两位小数,有正确的双存储12.34?
编码相对较新,对于基本的划分有一个问题。 如何来跟随不会返回我认为会的答案: int a=7; int b=3; double c=0; c=a/b; 结果是2.3333,但是它只返回2.如果A和B被重新分配为双打,那么答案会变成2.333。 但是肯定是因为C已经是一个双倍的工作了? 如何int / int = double不起作用? 也许是一个奇怪的问题,但它让我感到困惑。
一个64位的double可以精确地表示整数+/- 2 53 鉴于这个事实,我select使用双types作为我所有types的单一types,因为我最大的整数是无符号的32位。 但现在我必须打印这些伪整数,但问题是他们也混入了实际的双打。 那么如何在Java中很好地打印这些双打呢? 我试过String.format("%f", value) ,这是接近的,除了我得到很多小值的尾随零。 以下是%f输出示例 232.00000000 0.18000000000 1237875192.0 4.5800000000 0.00000000 1.23450000 我想要的是: 232 0.18 1237875192 4.58 0 1.2345 当然,我可以写一个函数来修剪这些零,但是由于string操作,性能会有很大的损失。 我可以用另一个格式代码更好吗? 编辑 Tom E.和Jeremy S.的答案是无法接受的,因为它们都是任意取整到小数点后两位。 请在回答之前了解问题。 编辑2 请注意, String.format(format, args…)是语言环境相关的 (请参阅下面的答案)。