我正在使用DecimalFormat将双精度格式化为String.然后将此String集成到我的表示层中.
格式: ### - >这将使用所有的数字之前小数点,但张学波数字后的小数点.
我可以使用#.#########作为大小数,但是如果小数更长的话怎么办?
我发现我的小测试程序很有用,并希望与您分享.
你能帮我显示所有小数吗?
package be.softwarelab.numbers;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.util.Locale;
public class DecimalNumbersTest {
private static final double NUMBER = 123456789.123456789;
public static void main(String[] args) {
String format01 = "#.";
String format02 = "#.#";
String format03 = "#.##";
String format04 = "#.###";
String format05 = "#.####";
System.out.println("====== NUMBER ===== USA =====================================");
showResult(NUMBER, format01, Locale.US);
showResult(NUMBER, format02, …Run Code Online (Sandbox Code Playgroud) 我想像这样改变浮动:
10.5000 - > 10.5 10.0000 - > 10
如何删除小数点后的所有零,并将其更改为float(如果有非零)或int(如果只有零)?
提前致谢.
可能重复:
如何很好地将浮动类型格式化为String?
我有号码:
Double d1=(Double)0;
Double d2=(Double)2.2;
Double d3=(Double)4;
Run Code Online (Sandbox Code Playgroud)
当我使用String时,我得到0.0,2.2,4.0,但我想看0,2.2,4.我该怎么做?
我需要仅在与零不同时显示浮点值的小数位.
如何使用正则表达式或DecimalFormat以这种方式格式化?
我在Java中有双重值,如下所示:
2.3422
45.3267
25.0
Run Code Online (Sandbox Code Playgroud)
我想要打印的是:
2.34
45.32
25
Run Code Online (Sandbox Code Playgroud)
所以我使用了以下方法
DecimalFormat form=new DecimalFormat("#0.00");
form.format(value);
Run Code Online (Sandbox Code Playgroud)
但我面临的问题是25.0它打印25.0但是我想打印25只是我该怎么办?
请注意,将double值转换为整数将适用于25.0但是对于像2.3422这样的值会失败.
我想将数字格式化为最多N个小数位。这里还有另一个类似且受欢迎的问题,但这并不是我想要的。
我正在寻找这样的东西,假设我想要最大。2个地方,所以这将是:
1.00 -> "1" (not "1.00")
1.20 -> "1.2" (not "1.20")
1.23 -> "1.23"
1.234 -> "1.23"
1.235 -> "1.24"
Run Code Online (Sandbox Code Playgroud)
与另一个问题的不同之处在于,如果不需要,我不想在逗号后面加上零。
我想知道这是否可以String.format()通过Math.round(),或DecimalFormat来完成。上面显示的另一个问题提供了DecimalFormat的解决方案。
给定N作为参数,答案不必为变量。我只是以N为例。
我和HERE有同样的问题,但我正在使用C#,
如何在C#中做到这一点?
(如果使用Tostring("F")作为此处,所有浮点数将变为X.XX,也为0到0.00)
这是一个浮点数的例子
232.00000000
0.18000000000
1237875192.0
4.5800000000
0.00000000
1.23450000
Run Code Online (Sandbox Code Playgroud)
我想把它们变成:
232
0.18
1237875192
4.58
0
1.2345
Run Code Online (Sandbox Code Playgroud)
编辑
(我突然发现我想做的事情比上面的更复杂但是修改问题已经太晚了,也许我会在另一个问题上问它......)
有没有办法设置String.format,以便它不会显示00小数?例如,我想:
String.format("%.2f", 12.345d)
Run Code Online (Sandbox Code Playgroud)
显示12.34
但是
String.format("%.2f", 12.3d)
Run Code Online (Sandbox Code Playgroud)
显示12.3而不是12.30
我怎么可以连接Double到String在Java?
我有以下代码:
Double price = 5.34;
String trade = MSFT;
Run Code Online (Sandbox Code Playgroud)
现在我有String key = price + trade,不确定这是否是正确的做法,任何建议?
我试图解析字符串浮动但它给了我一些不同的输出.假设我的代码:
String a = "111111111111111111111.23";
Float f = Float.parseFloat(a);
System.out.println(f);
Run Code Online (Sandbox Code Playgroud)
它给了我类似的东西: 1.1111111E20
它以简单的方式给了我 111111110000000000000
如何显示所有数据?我不想截断输入数据.