公告:魔扣目录网为广大站长提供免费收录网站服务,提交前请做好本站友链:【 网站目录:https://www.morko.net 】, 免友链快审服务(50元/站),

点击这里在线咨询客服
新站提交
  • 网站:51998
  • 待审:31
  • 小程序:12
  • 文章:1030137
  • 会员:747

本文介绍了Java:为什么我不能用科学记数法声明整数类型?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我可以很容易地一目了然地将2e15读成”两千万亿”,但对于2000000000000000,我必须计算零,这需要更长的时间,可能会导致错误。

为什么不能使用文字声明intlong,如2e91.3e6?我知道10的负幂(如2e-3)或小于小数位数的10的幂(如1.0003e3)会产生浮点数,但为什么Java不允许这样的声明,而只是截断浮点部分,并在结果值不是整数的情况下发出温和警告?

这是一个糟糕的主意,有没有技术原因,或者这完全是类型安全的问题?对于编译器来说,简单地解析像

这样的语句不是很简单吗

long x = 2e12ASlong x = 2000000000000 //OK for long

int y = 2.1234e3ASint y = 2123.4 //warning: loss of precision

推荐答案

因为当您使用科学记数法时,您将创建a floating point number(在您的示例中为双精度)。并且不能将浮点赋给整数(这将是缩小基元转换,which is not a valid assignment conversion)。

因此这也不起作用,例如:

int y = 2d; //can't convert double to int

您有几个选项:

将浮点显式转换为整数:int y = (int) 2e6;
在Java 7+中使用千分隔符:int y = 2_000_000;

这篇关于Java:为什么我不能用科学记数法声明整数类型?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,

分享到:
标签:声明 我不 整数 科学 类型 能用 记数
用户无头像

网友整理

注册时间:

网站:5 个   小程序:0 个  文章:12 篇

  • 51998

    网站

  • 12

    小程序

  • 1030137

    文章

  • 747

    会员

赶快注册账号,推广您的网站吧!
最新入驻小程序

数独大挑战2018-06-03

数独一种数学游戏,玩家需要根据9

答题星2018-06-03

您可以通过答题星轻松地创建试卷

全阶人生考试2018-06-03

各种考试题,题库,初中,高中,大学四六

运动步数有氧达人2018-06-03

记录运动步数,积累氧气值。还可偷

每日养生app2018-06-03

每日养生,天天健康

体育训练成绩评定2018-06-03

通用课目体育训练成绩评定