【问题标题】:How to find if number is round/integer or float/double如何查找数字是整数/整数还是浮点数/双精度数
【发布时间】:2015-11-12 20:47:04
【问题描述】:

我正在处理大数字,241 233 ,662581978748022 我想知道是否 662581978748022/241/233 是整数或浮点数......如果我尝试这样做,它们都是 long long int

double var=662581978748022/241/233 = 即使不是整数,它仍然输出整数,例如 xxx.0000,当我比较时它的 bcs double var=662581978748022/241/23 == long long int var2=662581978748022/241/23 当它不应该的时候它仍然是正确的我怎么能找到它的圆形或浮点数?

【问题讨论】:

  • 查看模运算符%。整数除法也总是产生一个整数。将一个或多个数字转换为浮点数或双精度数以获得浮点结果。
  • 显示你的输出语句,更好的是,一个 MCVE。 stackoverflow.com/help/mcve
  • 662581978748022/241/233 都是int 类型的值。因此结果将是一个int-type 值。

标签: c


【解决方案1】:

当您执行x = integer-number (operator) integer-number 时,右侧部分被计算为整数。无论x 是什么类型。

例子:

double x;
x = 3/2;

现在x 是“1.000…”。因为 3 是整数,所以 2 是整数,所以以整数进行运算。然后将其转换为 double=

如果您希望您的操作以浮点/双精度形式执行,您必须至少转换一个正确的成员:

double x;
x = (double)3/2;

现在x 是“1.5”。

因此,您的 double var=662581978748022/241/233(如果数字是整数变量,则相同)被计算为整数值。 正如@Kevin 所说,使用模 (%) 来获取剩余的东西或使用浮点值。

【讨论】:

    猜你喜欢
    • 2016-06-24
    • 2011-04-22
    • 2011-11-09
    • 1970-01-01
    • 2022-01-10
    • 2018-03-20
    相关资源
    最近更新 更多