我需要获得用户输入的厘米数,然后将其表示为公里,米和厘米的组合。例如,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/