首页 > 解决方案 > 扩大:代表性的变化

问题描述

请求您的帮助以更好地理解扩大的概念!

我在 VB.Net 中遇到了以下语句 wrt 'Widening Conversion'。从有关该主题的 msdn 文档中,我发现了以下内容:扩大转换保留源值,但可以更改其表示形式。如果从整数类型转换为 Decimal,或从 Char 转换为 String,则会发生这种情况。该页面的链接如下:

https://docs.microsoft.com/en-us/dotnet/visual-basic/programming-guide/language-features/data-types/widening-and-narrowing-conversions

我的问题如下:我编写了以下代码来理解语句“......保留源值但可以更改其表示”的含义。但是当我打印整数或小数时,我看不出输出有什么不同。那么这句话是什么意思......“......可以改变它的表示”是什么意思?

Module Module1
    Sub Main()
        Dim i As Integer = 5
        Dim d As Decimal = i 'widening
        Console.WriteLine(i)
        Console.WriteLine(d)
        'Both prints "5"...no difference in representation
        Console.ReadLine()
    End Sub
End Module

有人还可以举一个例子来演示当我们将 char 值转换为字符串时表示如何变化吗?

标签: vb.net

解决方案


这意味着数字的内部表示(在您的情况下)。尝试将 Single 转换为 Double:

Sub Main(args As String())
    Dim sng As Single = 1.23E+32
    Dim dbl As Double = sng
    Console.WriteLine($"Single: {sng}")
    Console.WriteLine($"Double: {dbl}")
End Sub
' Output:
' Single: 1,23E+32
' Double: 1,2300000079302825E+32

推荐阅读