C# 如果有很多行,如何转换为浮动?
我有反编译的源代码,它们有如下简单错误:C# 如果有很多行,如何转换为浮动?,c#,C#,我有反编译的源代码,它们有如下简单错误: this.SubReport.Top = 77.0 / 16.0; 错误18无法将类型“double”隐式转换为“float”。一 存在显式转换(是否缺少 演员?) 解决方案很简单: this.SubReport.Top = (float)(77.0 / 16.0); // or this.SubReport.Top = 77.0f / 16.0f; 然而,有成吨的线。除了替换文本外,清除这些错误的最简单方法是什么?因为这就是为什么我要问这个问题,
this.SubReport.Top = 77.0 / 16.0;
错误18无法将类型“double”隐式转换为“float”。一
存在显式转换(是否缺少
演员?)
解决方案很简单:
this.SubReport.Top = (float)(77.0 / 16.0);
// or
this.SubReport.Top = 77.0f / 16.0f;
然而,有成吨的线。除了替换文本外,清除这些错误的最简单方法是什么?因为这就是为什么我要问这个问题,我不想使用键盘&替换每一个错误,有1000多行。双击错误&用(float)包围数字是我最后的选择。另一种方法是将Top更改为具有双精度类型的属性。然后,在属性内部可以进行铸造
float _top = 0.0;
double Top
{
set
{
_top = (float)value;
}
get
{
return _top;
}
}
您还可以使用Resharper之类的工具来重构访问getter for Top的代码路径,并在其位置引入另一个属性,作为在其属性中返回(float)Top的浮点类型。比如:
float FloatTop
{
get
{
return (float)Top;
}
}
另一种方法是将Top更改为具有双精度类型的属性。然后,在属性内部可以进行铸造
float _top = 0.0;
double Top
{
set
{
_top = (float)value;
}
get
{
return _top;
}
}
您还可以使用Resharper之类的工具来重构访问getter for Top的代码路径,并在其位置引入另一个属性,作为在其属性中返回(float)Top的浮点类型。比如:
float FloatTop
{
get
{
return (float)Top;
}
}
试着自己动手,用正则表达式自动查找和替换。例如,可以更改所有分割:
然后找到其他这样的模式来自动替换它们。试着自己动手,用正则表达式自动查找和替换。例如,可以更改所有分割:
然后查找其他此类模式以自动替换它们。您可以使用find&replace with RegEx选项 例如:
Input: this.SubReport.Top = 77.0 / 16.0;
Output: this.SubReport.Top = (float)(77.0 / 16.0);
编辑: 您还可以使用组将浮点
f
添加到除铸造以外的值
Input: this.SubReport.Top = 77.0 / 16.0;
Output: this.SubReport.Top = 77.0f / 16.0f;
您可以使用“查找并替换为正则表达式”选项 例如:
Input: this.SubReport.Top = 77.0 / 16.0;
Output: this.SubReport.Top = (float)(77.0 / 16.0);
编辑: 您还可以使用组将浮点
f
添加到除铸造以外的值
Input: this.SubReport.Top = 77.0 / 16.0;
Output: this.SubReport.Top = 77.0f / 16.0f;
将
this.SubReport.Top
声明为float。将this.SubReport.Top
更改为float。您可以将要设置的属性类型更改为double
,或者在每个数字后面加上f
,77.0f/16.0f
将产生一个浮点数。@mehdi你的意思是double
。搜索并替换。SubReport.Top=
到。SubReport.Top=(float)
,仔细观察它,这样你就不会意外地在不需要的地方插入石膏。(也就是说,更改属性的类型可能更好。在代码中使用float
s而不是double
s很少是一个好主意,除非您与期望float
s的硬件交互,具体来说,这正是因为C在默认情况下使用double
s进行浮点计算。)将this.SubReport.Top
声明为float。将this.SubReport.Top
更改为float。您可以将要设置的属性类型更改为double
,或者在每个数字后面加上f
,77.0f/16.0f
将产生一个浮点数。@mehdi你的意思是double
。搜索并替换。SubReport.Top=
到。SubReport.Top=(float)
,仔细观察它,这样你就不会意外地在不需要的地方插入石膏。(也就是说,更改属性的类型可能更好。在代码中使用float
s而不是double
s很少是一个好主意,除非您与期望float
s的硬件交互,具体来说,这正是因为C在默认情况下使用double
s进行浮点计算。)看起来不错,我试试看。我们能确认这是分区吗?和/或在更换前是否应在那里?我想我可以添加@kkokosa的Find what input.this应该适用于divisionthis.SubReport.Top={.+./.+}代码>看起来不错,我试试看。我们能确认这是分区吗?和/或在更换前是否应在那里?我想我可以添加@kkokosa的Find what input.this应该适用于divisionthis.SubReport.Top={.+./.+}代码>