首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >被忽略的Math.round

被忽略的Math.round
EN

Stack Overflow用户
提问于 2018-08-24 05:02:02
回答 1查看 101关注 0票数 0
代码语言:javascript
复制
    double energy, mass;
    double speedOfLight = 299792458.0;
    // Get mass
    System.out.print("Mass? ");
    mass = keyboard.nextDouble();
    // Calculate energy
    energy = mass*Math.pow(speedOfLight, 2);
    // Round to 1 decimal place
    energy = Math.round(energy * 10.0) / 10.0;
    System.out.printf("The energy is " +energy+ " Joules");
    // Close scanner
    keyboard.close();

它正在返回,“能量是8.987551787368176E16焦耳”,而它应该返回,“能量是89875517873681760.0焦耳”

EN

回答 1

Stack Overflow用户

发布于 2018-08-24 05:05:19

Math.round按预期工作,返回最接近的整数(但输出为scientific notation格式)。问题出在号码的打印上。您可以使用printfformat specifiers以您想要的格式打印数字:

代码语言:javascript
复制
System.out.printf("The energy is %.1f Joules", energy);
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51994216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档