如何检查浮点数是否包含小数,如2.10,2.45,12382.66而不是2.00,12382.00。我想知道这个数字是否“圆”。我怎么能以编程方式做到这一点?
答案 0 :(得分:45)
使用模数将起作用:
if(num % 1 != 0) do something!
// eg. 23.5 % 1 = 0.5
答案 1 :(得分:7)
我将此c函数用于目标c
BOOL CGFloatHasDecimals(float f) {
return (f-(int)f != 0);
}
答案 2 :(得分:5)
如果您只关心两位小数,请通过计算bool hasDecimals = (((int)(round(x*100))) % 100) != 0;
在一般情况下,按照this topic中的描述获取小数部分,并将其与0进行比较。
答案 3 :(得分:3)
你可以这样做:
float num = 23.345f;
int intpart = (int)num;
float decpart = num - intpart;
if(decpart == 0.0f)
{
//Contains no decimals
}
else
{
//Number contains decimals
}
答案 4 :(得分:2)
import java.lang.Math;
public class Main {
public static void main(String arg[]){
convert(50.0f);
convert(13.59f);
}
private static void convert(float mFloat){
if(mFloat - (int)mFloat != 0)
System.out.println(mFloat);
else
System.out.println((int)mFloat);
}
}
答案 5 :(得分:0)
PHP
解决方案:
function hasDecimals($x)
{
return floatval($x) - intval($x) != 0;
}
答案 6 :(得分:0)
在 Scala 中,您可以使用isWhole()
或isValidInt()
来检查数字是否不包含小数部分:
object Example {
def main(args: Array[String]) = {
val hasDecimals = 3.14.isWhole //false
val hasDecimals = 3.14.isValidInt//false
}
}