我可以在DecimalFormat中禁用舍入"功能"吗?
例如:
DecimalFormat f = new DecimalFormat();
f.parseObject("123456789012345.99");
DecimalFormat f = new DecimalFormat();
f.parseObject("123456789012345.99");
DecimalFormat f = new DecimalFormat();
f.parseObject("123456789012345.99");
结果是1.2345678901234598E14
java版"1.6.0_21"
我有一个简短的等式:
double compute,computed2;
compute=getminutes/60;
Run Code Online (Sandbox Code Playgroud)
这里getminutes是int我想设置相当于compute有2位小数.0.00如何格式化2位小数的等效?
例:
compute=45/60 it should be 0.75
Run Code Online (Sandbox Code Playgroud)
这是我的工作:
DecimalFormat df2 = new DecimalFormat("00.00000");
double computed,computed2 = 00.000;
computed=60/getitbyminutes;
df2.format(computed);
computed2=computed-8;
df2.format(computed2);
System.out.printf("%1$.2f",computed);
System.out.println();
System.out.printf("%1$.2f",computed2);
Run Code Online (Sandbox Code Playgroud)
输出将如下:
1.00
7.00
Run Code Online (Sandbox Code Playgroud) 我有一个BigDecimal转换为a String来对它进行一些修改.最后,我尝试将其转换回BigDecimal使用此部分代码:
DecimalFormat decimalFormat = new DecimalFormat();
decimalFormat.setParseBigDecimal(true);
Amt = (BigDecimal) decimalFormat.parse(amount);
Run Code Online (Sandbox Code Playgroud)
最后,我希望我BigDecimal的例子就像这样"135.40"
,它可以工作,但在我得到的俄罗斯电脑上"135.00".我不明白为什么,这是一种什么样的错误?
我这个问题的标题不太好,但希望我能在这篇文章中对此进行更多解释。
import java.io.*;
import java.text.*;
public class Output {
public static void main(String[] args) {
/*double number = 438.978;
/*UpperCase <- naming convention for classes.DecimalFormat x = new DecimalFormat("#.#");
System.out.println(x.format(number));*/
double number = 43.97;
DecimalFormat x = new DecimalFormat(".###");
System.out.println(x.format(number));
}
}
Run Code Online (Sandbox Code Playgroud)
别介意评论。在我的 11 年级计算机科学课上,我问老师小数点左边的主题标签(第 11 行)是否对双数有任何影响,我们在课堂上尝试过,发现它并没有改变System.out.println语句。
~/workspace/Java/ $ java Output
43.97
Run Code Online (Sandbox Code Playgroud)
有人可以向我解释一下小数点左边参数的用途吗?有人编程让它做某事,所以我很好奇。
我只想以“可读性强”的格式输出数字。例如,您可以将 100000 输出为 100.000,这将更具可读性。
是否有可以用于此的现有方法?
我有一个XML文件,其中的数字以逗号分隔
<foo>
<bar val="1,23"/>
<bar val="4,56"/>
<bar val="7,89"/>
</foo>
Run Code Online (Sandbox Code Playgroud)
我想/foo/bar/@val在XSLT中对值进行总结,但我有点卡住了格式.有谁知道什么是正确的语法?
当我使用这个格式化程序时:
java.text.DecimalFormat("#.000");
Run Code Online (Sandbox Code Playgroud)
对于1234567/1000000.0
输出是:
1.235
Run Code Online (Sandbox Code Playgroud)
我希望它像那样:
1,235
Run Code Online (Sandbox Code Playgroud)
并尝试过:
java.text.DecimalFormat("#,000");
Run Code Online (Sandbox Code Playgroud)
但它不能作为例外.如何根据我的情况将点更改为逗号?
json_encode有一个大问题,它会自动舍入数字,但我需要在每个数字上保留2个小数点。
PHP:
<?php
$numbers = [1.00,2.00];
foreach ($numbers as $i => $number)
{
$numbers[$i] = number_format($number, 2, '.', null);
}
echo json_encode($numbers, JSON_NUMERIC_CHECK);
?>
Run Code Online (Sandbox Code Playgroud)
输出:[1,2]
预期的输出:[1.00,2.00]
如何防止每个数字都不自动舍入?
PS:不是字符串:)
所以我的程序也做了我想要的所有事情,除了在随机数为临时数生成时只显示小数点后的2个位置(12.00).它现在正在做的是(12.1234567897654).
我是java的初学者,这是我自己完成的第一个程序,所以如果答案很明显,请不要吝啬D:
我试过printf和%.2f,但我不能让它工作
public class ArrayOfTemperatures
{
public static void main(String[] args)
{
double [] temp = new double [7];
double random = Math.random() * 100 + 1;
temp[0] = Math.random() * 100 + 1;
//Calculating average
int sum = 0;
for (int i = 0; i < temp.length; i++) {
temp[i] = Math.random() * 100 + 1;
sum += temp[i];
}
//average being stated
double average = (double) sum / temp.length;
System.out.println("The average temperature is " + average);
//Temperatures …Run Code Online (Sandbox Code Playgroud) 现在我正在这样做
DecimalFormat df = new DecimalFormat("#.##");
//usage: df.format(someDouble);
Run Code Online (Sandbox Code Playgroud)
但我不知道这是否是"完善"双倍到2小数点显示的正确方法.即使小数点左边的位数> 1,这还能工作吗?