我尝试做一个非常简单的事情,只需将两个数字乘以一个浮点数和一个双精度数。 我得到的消息不能将双转换为浮动...谢谢
float tax = 0f;
tax = 0.14 * 26818;
答案 0 :(得分:1)
实际上,你是将一个double和一个整数相乘,然后试图将生成的双精度变成一个浮点数。
浮点数的精度和范围都小于双精度数,因此您需要显式强制转换以向编译器指示您知道自己在做什么: - )
所以,你可以这样做:
tax = (float)(0.14 * 26818);
或(如果您使用的是文字)只需从头开始使用浮点数:
tax = 0.14f * 26818;
答案 1 :(得分:0)
正如MSDN所说:
文字默认情况下,文字右侧是真正的数字文字 赋值运算符被视为double。因此,要初始化一个 float变量,使用后缀f或F
如果您不使用上一个声明中的后缀,您将获得 编译错误,因为您尝试存储double值 进入浮点变量。
因此,为了使您的表达能够起作用,请添加后缀。
tax = 0.14f * 26818;