printf表达式中的float意味着什么

时间:2016-03-16 18:01:04

标签: c

我刚刚发表了以下声明:

 import base64 # base32 is a function in base64
 import hashlib

 email = "somebody@example.com"

 md5 = hashlib.md5()
 md5.update(email.encode('utf-8'))

 hash_in_bytes = md5.digest()

 result = base64.b32encode(hash_in_bytes)

 print(result)

 # Or you can remove the extra "=" at the end

 result = result.strip(b'=')

我需要在上面的语句中使用printf("%d days total: %.1f%% were below freezing.\n",all_days, 100.0 * (float) cold_days / all_days); 内部(float)表达式的解释。如果您有任何参考,请链接它。

3 个答案:

答案 0 :(得分:1)

您使用(float) cold_days将整数转换为浮动。

详细了解如何在this link投射。

答案 1 :(得分:1)

答案 2 :(得分:1)

值得注意的是,此演员表可能不必要.fail将从左到右执行,由于100.0 * (float) cold_days / all_days已经是浮点数(100.0),double的结果也将是100.0 * cold_days。< / p>

由于double已升级为float for printf(以及任何其他可变参数函数),因此转换是多余的。