草庐IT

double-quoted

全部标签

java - 仅在需要时显示 double 的小数

我遇到了双(小数)问题。当adouble=1.234567然后我使用String.format("%.3f",myString);所以结果是1.234但是当我的双倍是10结果将是10,000我希望这是10他们是不是说他只需要在“有用”时显示小数?我看到一些关于这个的帖子,但那是php或c#,找不到关于这个的android/java的东西(也许我看起来不太好)。希望你们能帮我解决这个问题。编辑,现在我使用这样的东西:myString.replace(",000","");但我认为他们是一个更“友好”的代码。 最佳答案 带#参数的Dec

java - 精度损失 - int -> float 或 double

我有一道考试题要复习,题目是4分。"Injavawecanassignainttoadoubleorafloat".Willthiseverloseinformationandwhy?我之所以这么说是因为整数通常是固定长度或大小的——存储数据的精度是有限的,而以float存储信息可以是无限的,本质上我们会因此而丢失信息现在我有点粗略地知道我是否在这里击中了正确的区域。我很确定它会失去精确度,但我无法确切说明原因。请问我能得到一些帮助吗? 最佳答案 在Java中,整数使用32位来表示它的值。在Java中,FLOAT使用23位尾数,因此

java - 精度损失 - int -> float 或 double

我有一道考试题要复习,题目是4分。"Injavawecanassignainttoadoubleorafloat".Willthiseverloseinformationandwhy?我之所以这么说是因为整数通常是固定长度或大小的——存储数据的精度是有限的,而以float存储信息可以是无限的,本质上我们会因此而丢失信息现在我有点粗略地知道我是否在这里击中了正确的区域。我很确定它会失去精确度,但我无法确切说明原因。请问我能得到一些帮助吗? 最佳答案 在Java中,整数使用32位来表示它的值。在Java中,FLOAT使用23位尾数,因此

Java StringBuilder(StringBuffer) 的 ensureCapacity() : Why is it doubled and incremented by 2?

我已经对此进行了搜索,但我找不到为什么StringBuilder的ensureCapacity()方法不会通过仅加倍加二来延长旧容量。所以,当默认容量16已满时,除非整个字符串长度不超过34,否则下一个加长值将是34。为什么不应该是32?我最好的猜测是考虑一个空字符'\u0000',但我不确定。谁能告诉我为什么? 最佳答案 我相信这与一种简单但有点愚蠢的方法有关,以确保非常小的字符串的角盒。例如,如果我有字符串""我只是把它翻倍,我没有足够的大小来存放其他任何东西。如果我将它加倍并添加少量恒定的空格,我可以确保我的新值大于旧值。那为

Java StringBuilder(StringBuffer) 的 ensureCapacity() : Why is it doubled and incremented by 2?

我已经对此进行了搜索,但我找不到为什么StringBuilder的ensureCapacity()方法不会通过仅加倍加二来延长旧容量。所以,当默认容量16已满时,除非整个字符串长度不超过34,否则下一个加长值将是34。为什么不应该是32?我最好的猜测是考虑一个空字符'\u0000',但我不确定。谁能告诉我为什么? 最佳答案 我相信这与一种简单但有点愚蠢的方法有关,以确保非常小的字符串的角盒。例如,如果我有字符串""我只是把它翻倍,我没有足够的大小来存放其他任何东西。如果我将它加倍并添加少量恒定的空格,我可以确保我的新值大于旧值。那为

java - 为什么我们不能使用 '==' 比较两个 float 或 double

这个问题在这里已经有了答案:Testforfloatingpointequality.(FE_FLOATING_POINT_EQUALITY)(3个回答)WhydoesDouble.NaN==Double.NaNreturnfalse?(10个回答)关闭9年前。我正在阅读JoshuaBloch的Effectivejava,在Item8:Obeythegeneralcontractwhenoverridingequals中写了这个语句forfloatfields,usetheFloat.comparemethod;andfordoublefields,useDouble.compare.

java - 为什么我们不能使用 '==' 比较两个 float 或 double

这个问题在这里已经有了答案:Testforfloatingpointequality.(FE_FLOATING_POINT_EQUALITY)(3个回答)WhydoesDouble.NaN==Double.NaNreturnfalse?(10个回答)关闭9年前。我正在阅读JoshuaBloch的Effectivejava,在Item8:Obeythegeneralcontractwhenoverridingequals中写了这个语句forfloatfields,usetheFloat.comparemethod;andfordoublefields,useDouble.compare.

java - 为什么Double.NaN = 0.0d/0.0的定义中有一个 "d"?

我刚刚在Double.class中看到了NaN的定义。它说:/***AconstantholdingaNot-a-Number(NaN)valueoftype*{@codedouble}.Itisequivalenttothevaluereturnedby*{@codeDouble.longBitsToDouble(0x7ff8000000000000L)}.*/publicstaticfinaldoubleNaN=0.0d/0.0;我知道根据Java规范,这些文字代表相同的数字:0.0、0.0d和0.0D。对于其他常量,它们也没有使用'd'后缀:publicstaticfinaldo

java - 为什么Double.NaN = 0.0d/0.0的定义中有一个 "d"?

我刚刚在Double.class中看到了NaN的定义。它说:/***AconstantholdingaNot-a-Number(NaN)valueoftype*{@codedouble}.Itisequivalenttothevaluereturnedby*{@codeDouble.longBitsToDouble(0x7ff8000000000000L)}.*/publicstaticfinaldoubleNaN=0.0d/0.0;我知道根据Java规范,这些文字代表相同的数字:0.0、0.0d和0.0D。对于其他常量,它们也没有使用'd'后缀:publicstaticfinaldo

java - 在 Java 中写 long 和 double 不是原子的?

Readingandwritingofasinglevariableisatomic(languageguarantee!),unlessthevariableisoftypelongordouble.我正在阅读类(class)的幻灯片,我发现它是写好的。这门课是关于并发的。谁能向我解释为什么写一个long或double不是原子操作?真的让我大吃一惊。 最佳答案 它不是原子的,因为它是机器代码级别的多步操作。也就是说,long和double比处理器的字长长。 关于java-在Java中写