gpt4 book ai didi

java - 格式化 BigDecimal 或不带小数分隔符的数字

转载 作者:行者123 更新时间:2023-12-02 20:17:08 25 4
gpt4 key购买 nike

嗨,我想打印一个带有小数值的数字,但不使用小数分隔符。

例如:我有这个 275.1234,但我想要这个 027512(4 位 2 十进制,全部没有分隔符)

我尝试了两种方法:

    DecimalFormat format = new DecimalFormat("0000.00");  
DecimalFormatSymbols custom=new DecimalFormatSymbols();
custom.setDecimalSeparator('\u0000');
format.setDecimalFormatSymbols(custom);
System.out.println(format.format(new BigDecimal("275.1234")));

这打印了我:0275 12(我知道我可以删除空格)

第二种方法:

    String[] value = new BigDecimal("275.1234").toString().split("\\.");
System.out.println(value[0] + value[1].substring(0,2));

这打印出我:27512(如果有问题的数字没有整数4位,我需要前4位用0填充)

Ex: 1,1234 ==> 000112
Ex: 10,5678 ==> 001056
Ex: 100,7877 ==> 010078

基本上我想要更优雅的解决方案来解决这个问题,有什么想法吗?

谢谢伊格纳西奥

最佳答案

乘以 100 怎么样。

String text = String.format("%06.0f", Double.parseDouble("275.1234")*100);

String text = String.format("%06.0f", 275.1234 * 100);

String text = String.format("%06.0f", BigDecimal.valueOf(275.1234).doubleValue() * 100);

文本设置为

027512

如果你想截断而不是舍入,你可以这样做

String text = String.format("%06d", (long) (1234.5678 * 100));

打印

123456

关于java - 格式化 BigDecimal 或不带小数分隔符的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28723426/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com