标签: decimalformat

使用DecimalFormat(强制点)和drawString()(y似乎是错误的)

两个问题合在一起,但我有一个非常简短的测试用例来证明我的问题:

import java.awt.*;
import java.awt.image.*;
import java.io.*;
import java.text.*;
import java.util.*;
import javax.imageio.*;

public class Numbers {

    public static void main(String[] args) throws IOException {
        double[] numbers = { 10000.12, 20000.23, 3000.45 };
        DecimalFormat format = new DecimalFormat("0.00");
        format.setGroupingUsed(false);
        BufferedImage image = new BufferedImage(400, 150, BufferedImage.TYPE_INT_ARGB);
        Graphics2D g2d = image.createGraphics();
        g2d.setColor(Color.BLACK);
        g2d.setBackground(Color.YELLOW);
        g2d.clearRect(0, 0, image.getWidth(), image.getHeight());
        g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
        g2d.setFont(new Font(Font.SANS_SERIF,Font.BOLD, 24));
        FontMetrics metrics = g2d.getFontMetrics();

        for (int i = 0; i < numbers.length; i++) {
            String str = format.format(numbers[i]);
            System.out.println(i …
Run Code Online (Sandbox Code Playgroud)

java drawstring graphics2d decimalformat

2
推荐指数
1
解决办法
5147
查看次数

DecimalFormat取决于系统设置?

我在使用DecimalFormat时遇到了最奇怪的事情.

我在webapplication中使用它.我设置了一些测试,它在本地继续失败.我的一个朋友运行它,他能够成功运行JUnit测试.

奇怪的是,在我们的服务器上,应用程序运行完美,没有任何问题.

可能是Java依赖于valuta和数字设置等系统设置?或者还有其他原因吗?这就是我的代码片段:

public String generateFormatPrice(double price) throws Exception {
    DecimalFormat format1 = new DecimalFormat("#,##0.00");
    String tmp = format1.format(price).replace(".", "&");
    String[] tmps = tmp.split("&");
    return tmps[0].replace(',', '.') + "," + tmps[1];
}
Run Code Online (Sandbox Code Playgroud)

非常感谢提前!

java double decimalformat

2
推荐指数
1
解决办法
1511
查看次数

如何使用Formatter格式化java中的字符串

public class Test {
    public static void main(String[] args) {
        final String test1 = new String("01,");
        final String test2 = new String("01,0");
        final String test3 = new String("1,00");

        String pattern = "##,##";
        DecimalFormat formatter;
        DecimalFormatSymbols dfs = new DecimalFormatSymbols();
        dfs.setGroupingSeparator(',');

        formatter = new DecimalFormat(pattern, dfs);
        String result1 = formatter.format(test1);
        String result2 = formatter.format(test2);
        String result3 = formatter.format(test3);

        System.out.println("Result 1 == " + result1);
        System.out.println("Result 2 == " + result2);
        System.out.println("Result 3 == " + result3);
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试格式化字符串.我添加了用于格式化的代码.我越来越异常了.

我希望所有这些的结果为01,00.

例外 …

java android decimalformat

2
推荐指数
1
解决办法
5336
查看次数

在r plot文本中指定小数位?

我试图格式化在基本图形系统中创建的回归曲线的标签.基本上,此标签从变量中提取斜率,截距和r平方值.一个例子如下:

plot(rnorm(10), type = "n", xlim = c(0, 100), ylim = c(0, 100))
text(x = 0, y = 100, adj = c(0, NA), bquote(paste(y == .(a) * x + .(b), ", R"^2 == .(r2))), cex = 0.7)
Run Code Online (Sandbox Code Playgroud)

但是,这会产生一个看起来不太聪明的标签:

y = 1.159019x+-1.537708, R<sup>2</sup>=0.7924927
Run Code Online (Sandbox Code Playgroud)

我想要的是将数字四舍五入到小数点后第二位,即

y = 1.16x-1.54, R<sup>2</sup>=0.79
Run Code Online (Sandbox Code Playgroud)

我已经在两个帮助文档中查找了text(),bquote()但没有找到太多有用的信息.

我也曾尝试来包装.(a),.(b).(r2)format()与参数nsmall = 2,但没有奏效.

有人可以帮我这个吗?提前谢谢了!

PS.我认为我的问题中有一个隐藏的任务.在上面的例子中,b是否定的.我知道我可能会"+"在我的表达式中忽略运算符,只是使用负号b来加入我的等式.但是,如果我不知道b事先的迹象怎么办?是否有一种巧妙的方法来形成标签,而不是用a来检查它,if()然后写两个非常不同的版本text()?再次感谢!

plot label r decimalformat

2
推荐指数
1
解决办法
7078
查看次数

Java DecimalFormat加倍

我试图阻止java double以科学记数法打印.我知道我可以使用DecimalFormat,但这会生成一个String.我怎样才能产生实际的双倍?我试过了:

DecimalFormat df = new DecimalFormat("#");
df.setMaximumFractionDigits(8);
double n = Double.parseDouble(df.format(z));
Run Code Online (Sandbox Code Playgroud)

然而,这仍然是科学记数法的两倍.

java double decimalformat

2
推荐指数
1
解决办法
1188
查看次数

带有bigDecimals和decimalFormat的科学记数法

我正在尝试使用bigdecimals和decimalFormat以科学记数法格式显示小数,这是我到目前为止所提出的:

 BigDecimal a = new BigDecimal("0.000001");
 DecimalFormat df = new DecimalFormat("0.0###E0");
 System.out.println(df.format(a));
Run Code Online (Sandbox Code Playgroud)

这个程序输出"1.0E-4",这正是我想要的.现在,如果我将bigDecimal设置为"0.2222",则输出为2.222E-1.

我的问题是:在这种情况下有没有办法阻止科学记数法而不是2.222E-1,输出应该是0.2222?

java bigdecimal decimalformat

2
推荐指数
1
解决办法
702
查看次数

如何将以字符串表示的度分秒位置转换为双精度

我的应用程序允许用户搜索位置,我收到的查询之一是

\n\n
"78\xc2\xb014\'09"N 15\xc2\xb029\'29"E"\n
Run Code Online (Sandbox Code Playgroud)\n\n

显然用户想要转到这个位置。\n首先如何检查该字符串是否正确符合十进制格式。那么如何将其转换为双精度格式呢?

\n\n
double latitude = convertToDouble("78\xc2\xb014\'09"N")\n
Run Code Online (Sandbox Code Playgroud)\n\n

我在 stackoverflow 上搜索过,但他们都在寻找相反的内容:双精度到十进制。

\n

java gps location decimalformat

2
推荐指数
1
解决办法
7388
查看次数

将DecimalFormat(#.#)与本地化一起使用

我可以DecimalFormat轻松地使用格式化我的数字.例

 DecimalFormat format = new DecimalFormat("#.#");
Run Code Online (Sandbox Code Playgroud)

但是,我需要将此数字传递给Localized格式化,就像这样

        DecimalFormat english = (DecimalFormat)DecimalFormat.getNumberInstance(Locale.ENGLISH);
Run Code Online (Sandbox Code Playgroud)

如何将两者结合起来?谢谢.

java android decimalformat

2
推荐指数
1
解决办法
1841
查看次数

将 DecimalFormat 与 ThreadLocal 结合使用会对性能产生哪些影响?

我有一个使用DecimalFormat( https://docs.oracle.com/javase/7/docs/api/java/text/DecimalFormat.html ) API 的实现。

解决方案1:争论是因为DecimalFormat不是线程安全的,我倾向于使用创建ThreadLocalDecimalFormat使其线程安全。此外,它将保存每次调用的 DecimalFormat 对象的创建

private static final ThreadLocal<DecimalFormat> restrictTo1DecimalPlace =
            ThreadLocal.withInitial
                    (() -> new DecimalFormat("0.0%", DecimalFormatSymbols.getInstance(Locale.ENGLISH)));
Run Code Online (Sandbox Code Playgroud)

解决方案 2:另一个简单的解决方案是放弃对象的可重用性并DecimalFormat每次都创建对象。

new DecimalFormat("0.0%", DecimalFormatSymbols.getInstance(Locale.ENGLISH)).format(decimalValueToFormat)
Run Code Online (Sandbox Code Playgroud)

什么是更好的?

java multithreading decimalformat

2
推荐指数
1
解决办法
1674
查看次数

如何使用 Twig 省略数字格式中的零值小数?

我想删除无意义的小数位,如下所示:

14.50   => 14.5
14.0500 => 14.05
14.000  => 14
Run Code Online (Sandbox Code Playgroud)

我正在寻找如何做到这一点,我发现了以下方法:

{{ number|trim('0')|trim('.') }}
Run Code Online (Sandbox Code Playgroud)

但上述过滤器的唯一问题是以下情况:

0.023 => 023
Run Code Online (Sandbox Code Playgroud)

有谁知道我怎样才能实现这一目标?

php decimal decimalformat symfony twig

2
推荐指数
1
解决办法
2478
查看次数