如何检查输入值是整数还是浮点数?
如何检查输入值是整数还是浮点数?
假设312/100=3.12 这里我需要检查 3.12 是浮点值还是整数值,即没有任何小数位值。
How to check whether input value is integer or float?
Suppose 312/100=3.12
Here i need check whether 3.12 is a float value or integer value, i.e., without any decimal place value.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
您应该检查数字的小数部分是否为 0。
使用
或
或类似的东西
You should check that fractional part of the number is 0.
Use
or
or something like that
这个怎么样。使用模运算符
How about this. using the modulo operator
ceil 和 Floor 方法将帮助您确定数字是否为整数。
但是如果你想确定数字是否可以用 int 值表示。
或一个长(64 位整数),
或者可以安全地用浮点数表示,而不会损失精度
顺便说一句:除非必须,否则不要使用 32 位浮点数。在 99% 的情况下,64 位双精度型是更好的选择。
The ceil and floor methods will help you determine if the number is a whole number.
However if you want to determine if the number can be represented by an int value.
or a long (64-bit integer)
or can be safely represented by a float without a loss of precision
BTW: don't use a 32-bit float unless you have to. In 99% of cases a 64-bit double is a better choice.
另外:
会起作用!
Also:
would work!
Math.round( )
返回最接近给定输入值的整数。如果您的浮点数已经有一个整数值,那么“最近的”整数将是相同的值,因此您需要做的就是检查 Math.round() 是否更改该值:Math.round()
returns the nearest integer to your given input value. If your float already has an integer value the "nearest" integer will be that same value, so all you need to do is check whetherMath.round()
changes the value or not:您可以使用 Scanner Class 来查找给定的数字是否可以读取为 Int 或 Float 类型。
You can use Scanner Class to find whether a given number could be read as Int or Float type.
这样做是为了区分这一点。
例如,如果您的数字是 3.1214 并存储在 num 中,但您不知道 num 的种类:
在此示例中,我们看到 num 不是整数。
Do this to distinguish that.
If for example your number is 3.1214 and stored in num but you don't know kind of num:
In this example we see that num is not integer.
您可以使用 RoundingMode.#UNNECESSARY 如果你想要/接受否则抛出的异常
如果不是整数值则异常:
You can use RoundingMode.#UNNECESSARY if you want/accept exception thrown otherwise
Exception if not integer value: