将浮点数乘以双精度数

时间:2017-09-06 00:40:55

标签: c#

我尝试做一个非常简单的事情,只需将两个数字乘以一个浮点数和一个双精度数。 我得到的消息不能将双转换为浮动...谢谢

float tax = 0f;
tax = 0.14 * 26818;

2 个答案:

答案 0 :(得分:1)

实际上,你是将一个double和一个整数相乘,然后试图将生成的双精度变成一个浮点数。

浮点数的精度和范围都小于双精度数,因此您需要显式强制转换以向编译器指示您知道自己在做什么: - )

所以,你可以这样做:

tax = (float)(0.14 * 26818);

或(如果您使用的是文字)只需从头开始使用浮点数:

tax = 0.14f * 26818;

答案 1 :(得分:0)

正如MSDN所说:

  

文字默认情况下,文字右侧是真正的数字文字   赋值运算符被视为double。因此,要初始化一个   float变量,使用后缀f或F

     

如果您不使用上一个声明中的后缀,您将获得   编译错误,因为您尝试存储double值   进入浮点变量。

因此,为了使您的表达能够起作用,请添加后缀。

tax = 0.14f * 26818;

enter image description here