我需要获取用户输入的厘米数,然后将其表示为公里、米和厘米的组合。例如,1005020 厘米将分别为 10 公里、50 米和 20 厘米。
我刚刚开始,我觉得这是一个非常基本的问题,我感到很沮丧。
我尝试过编码,但遗憾的是无法达到预期的结果
Scanner scanner = new Scanner(System.in);
System.out.println("This program takes centimeter number and represent it as a combination of kilometer, meter, and centimeter");
System.out.println("Please enter centimeters:");
double centimeters = scanner.nextDouble();
double convertedCentimeters = centimeters;
double kilometers = (int) (convertedCentimeters / 100000);
convertedCentimeters /= 100000;
double meters = (int)(convertedCentimeters / 100);
convertedCentimeters /= 100;
它将打印 10 公里、0.0 米和 0.10050200000000001 厘米。 我尝试过不进行强制转换,但 km 是错误的,尝试将所有内容都设置为 int ,但仍然错误。我真的很感谢你的帮助,我需要赢得这场比赛。如果您能引导我找到解决方案而不是直接告诉我,那就太好了。
最佳答案
您的答案中缺少的主要内容是使用模数,您需要使用模数来正确回答您的问题。考虑以下工作脚本:
int centimeters = 1005020;
int kilometers = centimeters / 100000;
int meters = (centimeters % 10000) / 100;
int centimetersFinal = centimeters % 100;
鉴于您想要报告每个单位的整数,我建议从各处开始使用整数。这也使算术变得更加容易。
公里值是通过将厘米量换算为公里的下限而获得的。在本例中,我们得到 10 公里,正如您所期望的那样,但我们不包括剩余部分,因为这属于米和厘米部分。
仪表值采用 mod 10000 来仅隔离严格小于一公里的组件。然后,我们除以 100 以去除厘米分量。
最后,厘米分量就是原始量除以 100 的余数。
关于java - 如何将给定的长度转换为厘米并将其表示为公里、米和厘米的组合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58801929/