是不是数据类型int只用于整数? 10/3是小数,因此是小数。这是否意味着它会产生一个错误?变量的值是什么? int iNum = 10/3
回答
这取决于语言。对于您的示例(Java),它将被舍入为零(也称为“截断”操作)。因此,该值变为3.尝试一下自己:
int i = 10/3;
System.out.println(i); // Displays 3
int j = -10/3;
System.out.println(j); // Displays -3
double k = 10/3;
System.out.println(k) // Displays 3.00
double m = ((double)10)/3;
System.out.println(k) // Displays 3.33
double m = 10.0/3;
System.out.println(k) // Displays 3.33
实际上有两个操作在每种情况下继续。考虑第一个例子,
步骤1: 计算右侧的值[Integer 10]
除以[Integer 3]
。如上所述,答案是[Integer 3]
。
第2步: 将此RHS值[Integer 3]
指定到左侧。 [Integer 3]
分配给[Integer i]
。所以我等于3.
因为操作分两步完成,所以使用double
的第三个操作也给出了3.00,而不是3.33。在步骤2开始时,精度已经丢失。
它不会被舍入。试用'11/3'。 –
ohh我明白,双重铸造双数据类型,例如:double dNum =(double)(14/5); – cosittos
@AdamArold它被四舍五入为零,但是'11/3 == 3'和'-11/3 == -3' –
在代码中,10/3是而不是的一小部分。 Java没有原始分数。
相反,它是代表整数 10由整数 3.由于既不类型会导致促进分裂的浮点划分的表达(即,既不是浮点值/双)然后整数除法使用,其中结果也将是整数。
因此在问题中没有浮点类型,结果是3(一个整数,它可直接分配给整数变量)。正如其他人已经指出的那样,这种分裂的结果像“舍入到零”或“截断”操作一样行动。
- 1. 变量的值是什么?
- 2. 什么样的变量是int * [2]?如在分层int * p2 [2]
- 3. 什么是数组变量的“值”?
- 4. 什么是'success_url'变量的默认值
- 5. 变量thisconnection的值和HOW是什么?
- 6. 什么是(int - > int) - >(int - > int)是什么意思?
- 7. 为什么我的int变量值突然跳跃?
- 8. 什么是变量?
- 9. 什么是C“INT常量*”的确切含义是什么?
- 10. Laravel,什么是平均值变量$ app
- 11. 为什么变量是NULL?
- 12. 什么是可变常量?
- 13. 为什么12位未初始化的int变量总是0xff0?
- 14. 什么是c中枚举的int值?
- 15. 什么是vim的@@变量?
- 16. 什么是新的变量
- 17. 克++ __static_initialization_and_destruction_0(INT,INT) - 什么是
- 18. 什么是const变量?
- 19. 为什么变量值异常变化
- 20. 为什么不是int增量?
- 21. 什么是这种变量$变量
- 22. 什么是“变量=变量|| {}”在JavaScript
- 23. 变量++和变量是什么意思?
- 24. 局部变量auto int a和int a有什么区别?
- 25. DotNet - 什么是int *?
- 26. 什么是INT 21h?
- 27. 什么是原子变量,它的用法是什么?
- 28. 什么是值上下文变量在Talend列表的目的是什么?
- 29. 什么是纯变量?
- 30. 什么是“安全变量”?
嗯......你为什么不试试看?你可以把一个10/3放入int。只有整个部分存储,即3。 – james
询问之前,你自己试过吗? –
你的意思是“理性”,你写了“小数”。 –