我想在java中将我的双倍小数舍入到3位小数.
我不想削减零.所以,如果我的双倍是2.34,我仍然希望它为2.340.
可能重复:
将小数点后的双精度数加到2位有效数字
我有这样的拉特和长点,
x1: 11.955165229802363
y1: 79.8232913017273
Run Code Online (Sandbox Code Playgroud)
我需要转换4个小数点
x1 = 11.9552
y1 = 79.8233
Run Code Online (Sandbox Code Playgroud) 例如,当我有3.333并且执行该代码时,我需要数字为3.33.
这是我应该做的代码,但不是:
String number = Double.toString(first);
number = number.substring(0, string.length() - 1);
first = Double.parseDouble(number);
Run Code Online (Sandbox Code Playgroud)
我尝试通过将数字转换为字符串,切断最后一个字符并将其再次保存为双精度来实现.但它不起作用.它不会切断1位数,而是切断2,例如,它将返回3.3.
这种方法是否可靠,如果是,我该怎么做才能修复它?
此外,这个方法是否有可能使程序崩溃(只有十进制数通过该代码)并且精度会有损失吗?
我想在Java中将double格式化为2位小数.
我已经阅读了以下帖子: 如何在Java中将数字舍入到n个小数位
出于某种原因,这些方法中的每一种都无法处理我拥有的某些数字.
例如:
DecimalFormat df = new DecimalFormat("#.##");
normalizedValue = Double.valueOf(df.format(normalizedValue));
Run Code Online (Sandbox Code Playgroud)
如果我打印normalizedValue我得到的结果类似于以下内容:
-78.64000000000001
18.97
59.469999999999985
-63.120000000000005
Run Code Online (Sandbox Code Playgroud)
(注意:有些格式正确...有些不是)
所以,这些方法似乎是圆的,但我需要的东西将删除2位小数后的所有小数...任何建议?
谢谢.
我有Double值 Double val = 49.569632
我怎么能以农达val得到49.57
我有一个像字符串46542.5435657468,但我希望格式化这个字符串,并在点"."后只需要两个charector.喜欢46542.54.请建议我需要使用哪种String方法.