Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 将双值转换为单值,意外结果_.net_Vb.net_Math_Numbers_Double - Fatal编程技术网

.net 将双值转换为单值,意外结果

.net 将双值转换为单值,意外结果,.net,vb.net,math,numbers,double,.net,Vb.net,Math,Numbers,Double,我使用的方法要求单个值指定一个百分比,例如,0.8F表示80%,0.921F表示92,1%,但为了使代码更具可读性,我建议改为发送一个双值,例如,如果我发送一个80.0R的值,它应该表示80%,它应该转换为0.8F,80.5R的值应该表示80,5%,如果我的计算结果良好,应该转换为0.805F,100.0R的值应该转换为1.0F 我的问题是,当我尝试将双精度值(例如80.0R)转换为单精度值时,我得到了一个错误的转换,在这种情况下,我得到了80.0F,但应该是0.8F 我做错了什么 方法如下:

我使用的方法要求单个值指定一个百分比,例如,0.8F表示80%,0.921F表示92,1%,但为了使代码更具可读性,我建议改为发送一个双值,例如,如果我发送一个80.0R的值,它应该表示80%,它应该转换为0.8F,80.5R的值应该表示80,5%,如果我的计算结果良好,应该转换为0.805F,100.0R的值应该转换为1.0F

我的问题是,当我尝试将双精度值(例如80.0R)转换为单精度值时,我得到了一个错误的转换,在这种情况下,我得到了80.0F,但应该是0.8F

我做错了什么

方法如下:

Private Function FindImage(ByVal BaseImage As Bitmap,
                           ByVal ImageToFind As Bitmap,
                           ByVal Similarity As Double) As AForge.Imaging.TemplateMatch()

    Dim SingleSimilarity As Single

    ' Translate the readable similarity percent value to Single value.
    Select Case Similarity

        Case Is < 0.1R, Is > 100.0R ' Value is out of range.
            Throw New Exception(String.Format("Similarity value of '{0}' is out of range, range is from '0.1' to '100.0'",
                                              CStr(Similarity)))

        Case Is = 100.0R ' Identical image comparission.
            SingleSimilarity = 1.0F

        Case Else ' Image with similarity comparission.
            SingleSimilarity = Convert.ToSingle(...) ' Here goes bad.

    End Select

    ...

    ' This only accepts a Single value:
    Dim tm As New AForge.Imaging.ExhaustiveTemplateMatching(SingleSimilarity)

    ...

End Function
Convert.ToSingle只需将您的数字从原来的双精度转换为单精度。它不会对值进行任何修改。所以80.5R变为80.5F——值不变

您将需要实际编写从百分比转换的转换-如下所示:

Case Else
    SingleSimilarity = Convert.ToSingle(Similarity) / 100.0F
Convert.ToSingle只需将您的数字从原来的双精度转换为单精度。它不会对值进行任何修改。所以80.5R变为80.5F——值不变

您将需要实际编写从百分比转换的转换-如下所示:

Case Else
    SingleSimilarity = Convert.ToSingle(Similarity) / 100.0F
Convert.ToSingle只需将您的数字从原来的双精度转换为单精度。它不会对值进行任何修改。所以80.5R变为80.5F——值不变

您将需要实际编写从百分比转换的转换-如下所示:

Case Else
    SingleSimilarity = Convert.ToSingle(Similarity) / 100.0F
Convert.ToSingle只需将您的数字从原来的双精度转换为单精度。它不会对值进行任何修改。所以80.5R变为80.5F——值不变

您将需要实际编写从百分比转换的转换-如下所示:

Case Else
    SingleSimilarity = Convert.ToSingle(Similarity) / 100.0F

这是我见过的最简单的代码

SingleSimilarity = single.parse(Similarity) / 100.0F

这是我见过的最简单的代码

SingleSimilarity = single.parse(Similarity) / 100.0F

这是我见过的最简单的代码

SingleSimilarity = single.parse(Similarity) / 100.0F

这是我见过的最简单的代码

SingleSimilarity = single.parse(Similarity) / 100.0F

你是说你需要什么样的细节@SGG???@SGG你想要什么样的细节?你是说你需要什么样的细节@SGG???@SGG你想要什么样的细节?你是说你需要什么样的细节@SGG???@SGG你想要什么样的细节?你是说你需要什么样的细节@SGG???@SGG你想要什么样的细节?