当前位置: 首页 > 知识库问答 >
问题:

DecimalFromat问题,主要针对小数后2位

滕星纬
2023-03-14

这是我的代码:

public class TemperatureConverter {
public static float convertTemp1 (float temperature,
    char convertTo) {
    return convertTo;}
    public static String convertTemp (float temperature, char convertTo) {

     if (convertTo=='F'){
     return "The temperature in Fahrenheit is " + (9*temperature/5 + 32);
    } else if(convertTo=='C') {
     return "The temperature in Celsius is " + (temperature - 32) * 5/9;
    }  else{
     return "You can enter either F or C as convertTo argument";

}
}

public static void main(String[] args) {

System.out.println("Converting 21C to Fahrenheit. " +  convertTemp(21,'F', 0));
System.out.println("Converting 70F to Celsius. " + convertTemp(70,'C', 0));
}
}

这是运行时的输出:

将21C转换为华氏温度。华氏温度是69.8度

将70F转换为摄氏度。摄氏温度是 21.11111

我一直在尝试,一次又一次的让tje 2.11111,到2.11,小数点后只有2位数。可能有人帮我从这得到:

将21C转换为华氏温度。华氏温度是69.8度

将70F转换为摄氏度。摄氏温度是 21.11111

对此:

将21C转换为华氏温度。华氏温度是69.8度

将70F转换为摄氏度。摄氏温度为21.11度

共有3个答案

吕修伟
2023-03-14

我认为这应该奏效:

    float temp = .....F;

    DecimalFormat df = new DecimalFormat("#,##0.0#");
    String formatedString = df.format(temp);

    System.out.println("temp: " + formatedString);

输入:69.888888

输入: 69.8

在您的示例中,您省略了69.8的尾随零,如果您想拥有更多或更少的尾随零,只需将#更改为0,反之亦然。

璩浩广
2023-03-14

你想使用字符串格式()。例如:

  public class T {
  public static void main(String[] args) {
    System.out.println(String.format("%.2f", 10.12312));
  }
}
史默
2023-03-14

您可以使用String.format()来指定小数点后应该显示多少位数:

class Main {
  public static String convertTemp (float temperature, char convertTo) {
    if (convertTo == 'F') {
      return String.format("The temperature in Fahrenheit is %.1f", (9*temperature/5 + 32)); 
    } else if (convertTo == 'C') {
      return String.format("The temperature in Celsius is %.2f", (temperature - 32) * 5/9); 
    } else {
      return "You can enter either F or C as convertTo argument";
    }
  }

  public static void main(String[] args) {
    System.out.println("Converting 21C to Fahrenheit. " +  convertTemp(21,'F'));
    System.out.println("Converting 70F to Celsius. " + convertTemp(70,'C'));
  }
}

输出:

Converting 21C to Fahrenheit. The temperature in Fahrenheit is 69.8
Converting 70F to Celsius. The temperature in Celsius is 21.11

试试这里!

 类似资料:
  • 请考虑以下代码: 我想要一个指针,指向一个特定的对象,在一个向量,当耳环这个对象,指针也应该被删除,或指向空或类似的东西。同样,当我有一个指向矢量位置3的对象的指针时,我希望这个指针在移除例如对象1之后指向位置2,因为对象3向左“移动”了一个位置。这样的事情是可以实现的还是我应该尝试一种不同的方法?我刚开始学习C++所以我对任何高级概念都不是很熟悉。

  • 本文向大家介绍数据库设计的主要问题,包括了数据库设计的主要问题的使用技巧和注意事项,需要的朋友参考一下 数据库设计可能是一项艰巨的任务,您需要遵循以下方法并应对挑战,才能获得设计良好的数据库。 数据库设计的关注点和挑战如下: 遵循设计标准 在设计数据库时考虑设计标准非常重要。它为您提供了定义明确的组件。这样,您还可以轻松评估现有设计。 如果您无法遵循设计标准方法,那么不要指望设计是正确的,并且您将

  • JVM堆分为两个空间,旧一代的空间和年轻一代的空间。在主要GC之后,经过压缩/扫描过程,旧一代会有空闲空间,我想知道我们在主要GC期间获得的空闲空间是否仍然属于旧一代空间,或者旧一代的空闲空间可以移动到年轻一代的空间? 换言之,我想问的是,老一代的空间和年轻一代的空间是否有固定的大小/边界。 提前谢谢你,林

  • 上一讲和本讲的标题是“大话题小函数”,所谓大话题,就是这些函数如果溯源,都会找到听起来更高大上的东西。这种思维方式绝对我坚定地继承了中华民族的优良传统的。自从天朝的臣民看到英国人开始踢足球,一直到现在所谓某国勃起了,都一直在试图论证足球起源于该朝的前前前朝的某国时代,并且还搬出了那时候的一个叫做高俅的球星来论证,当然了,勃起的某国是挡不住该国家队在世界杯征程上的阳痿,只能用高俅来意淫一番了。这种思

  • 本文向大家介绍小程序使用wxs解决wxml保留2位小数问题,包括了小程序使用wxs解决wxml保留2位小数问题的使用技巧和注意事项,需要的朋友参考一下 1.出现溢出表现 从图中可以看到数字超出了很长长度。代码里面是如下这样的。为什么在0.35出现?或者一些相成的计算出现? 而 0.34却不会。 0.41 也会出现,好像是二进制运算出现结果。 wxml文件仅仅是处理一个相处的结果。 2.在wxml文

  • 我有一个,我希望将用户的输入限制为纯数字或小数最多2位的数字。 基本上,我要求的是一个价格输入。 我想避免做正则表达式。有办法做到吗?