回答
而应该做
float years = (1.0/31536000.0) * 883102.00;
或
float years = (1.0/31536000) * 883102.00;
可以正常工作。你的第一个数字被视为整数。
窍门 - 感谢 – Rajeshwar
1是一个int。然后编译器会假设你对ints有兴趣,然后1/3153600变成0.只需在.1中加1,你的calc就可以工作了。
float years = (1.0/31536000) * 883102.00;
第一项是int
,因此四舍五入为0
。试试这个:
float years = (1.00/31536000.00) * 883102.00
小数点后面为什么只有两个零?你不应该再添加几个以保证安全吗? –
这里没有演员。第一项的类型为'int',第二项的类型为'int',因此它们的商具有类型'int'。该值是**截断**,不是四舍五入。 –
@PeteBecker:“舍入”用于表示修改结果以适应目标格式(例如,IEEE 754-2008 4.3),并且可以使用各种舍入模式,例如舍入为零。 –
(31536000分之1)将产生出0是乘以任何数将为0 使分子或分母浮动ATLEAST一个(如1.0或31536000.0)
883102.0/31536000
将做到这你想要什么。
因为整数司
(1/31536000)
的小数位获得截断,结果为“零”。 你必须添加一个点:
(1.0/31536000.0) or (1./31536000.)
只是不要
float years = 883102.00/31536000;
这将节省计算。 既然你是潜水1的东西,然后乘。 或者只是将1设置为1.00
- 1. 浮点数计算
- 2. 浮点数的数学运算
- 3. c# - 计算器 - 用浮点数计算
- 4. php计算浮点数
- 5. PHP:浮点数学运算和比较
- 6. php浮点数学运算错误?
- 7. 在浮点数中计算小数位
- 8. PHP意外整数/浮点数计算
- 9. 计算整数和一个浮点数
- 10. Python计算:浮点数和整数
- 11. 红宝石浮点数学 - 总结精度问题计算
- 12. 科学浮点数的计算结果,不能用它来计算
- 13. 计算机科学数学
- 14. IEEE浮点数,如何计算偏差
- 15. 2浮点数做一个计算
- 16. 计算器浮点数转换
- 17. python:无法计算浮点数
- 18. 如何计算C中的浮点数?
- 19. 英特尔:计算浮点数
- 20. 转换为浮点数并计算
- 21. Java浮点数学错误?
- 22. Android浮点数学性能
- 23. SASS数学计算
- 24. 数学计算C
- 25. Oracle数学计算
- 26. angularjs数学计算
- 27. Sql数学计算
- 28. Python数学计算
- 29. Javascript数学计算
- 30. MongoDB - 数学计算
尝试在每个数字上添加'f'后缀 – user2485710
@ user2485710'1f'无效C++。 –
@PascalCuoq确定我的意思是'1.0f',为每个数字加上'.0f'。 – user2485710