Java 在字符串中串联一个double将截断

Java 在字符串中串联一个double将截断,java,Java,对于变量双排列=0.135我在写 “”+数学四舍五入(排列*10000)/100+“%” 这是试图四舍五入到1个基点。(100个基点=1%) 但它不包括任何小数部分 为什么?这是整数除法截断的另一种变体;虽然比正常情况下埋得稍微深一些 Math.round(spread*10000)返回一个long。将该值除以100将把结果截断为long 你的计划?使用100.0作为除数。然后用浮点计算表达式。这是整数除法截断的另一种变体;虽然比正常情况下埋得稍微深一些 Math.round(spread*10

对于变量<代码>双排列=0.135我在写

“”+数学四舍五入(排列*10000)/100+“%”

这是试图四舍五入到1个基点。(100个基点=1%)

但它不包括任何小数部分


为什么?

这是整数除法截断的另一种变体;虽然比正常情况下埋得稍微深一些

Math.round(spread*10000)
返回一个
long
。将该值除以100将把结果截断为
long


你的计划?使用
100.0
作为除数。然后用浮点计算表达式。

这是整数除法截断的另一种变体;虽然比正常情况下埋得稍微深一些

Math.round(spread*10000)
返回一个
long
。将该值除以100将把结果截断为
long


你的计划?使用
100.0
作为除数。然后用浮点计算表达式。

当您将
long
除以
int
时,将得到一个
long
,它是一个整数。简单的解决办法是除以一个二重数。试一试

Math.round(spread * 10000) / 100.0 + "%"


long
除以
int
得到一个
long
,它是一个整数。简单的解决办法是除以一个二重数。试一试

Math.round(spread * 10000) / 100.0 + "%"


Round()返回一个长字符串。因此,div操作是一个长值

Round()返回一个长字符串。因此,div操作是一个长值

我喜欢第二个。我总是忘了1e2是一个浮点文字。@Bathsheba当你真正关心它的时候,它会让你更清楚,10的幂。有时我甚至用
1e1
表示小数点后一位;)我喜欢第二个。我总是忘了1e2是一个浮点文字。@Bathsheba当你真正关心它的时候,它会让你更清楚,10的幂。有时我甚至用
1e1
表示小数点后一位;)不完全是。
float
上的四舍五入返回一个
int
,而
double
上的四舍五入返回一个
long
。值得澄清的是,它是一个
long
而不是一个
整数或
int
不完全。在
浮点上取整
返回
整数
,在
双精度上取整
返回
。值得澄清的是,它是
而不是
整数
整数