다음을 통해 공유


Single 구조체

단정밀도 부동 소수점 숫자를 나타냅니다.

네임스페이스: System
어셈블리: mscorlib(mscorlib.dll)

구문

‘선언
<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public Structure Single
    Implements IComparable, IFormattable, IConvertible, IComparable(Of Single), _
    IEquatable(Of Single)
‘사용 방법
Dim instance As Single
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public struct Single : IComparable, IFormattable, IConvertible, 
    IComparable<float>, IEquatable<float>
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public value class Single : IComparable, IFormattable, IConvertible, 
    IComparable<float>, IEquatable<float>
/** @attribute SerializableAttribute() */ 
/** @attribute ComVisibleAttribute(true) */ 
public final class Single extends ValueType implements IComparable, IFormattable, 
    IConvertible, IComparable<float>, IEquatable<float>
JScript에서는 구조체를 사용할 수 있지만 새로 선언할 수는 없습니다.

설명

Single 값 형식은 단정밀도 32비트 숫자를 나타내며, 음수 3.402823e38과 양수 3.402823e38 사이의 값을 가지고, 양수 또는 음수 0, PositiveInfinity, NegativeInfinity 및 Not-a-Number(NaN)도 포함됩니다.

Single은 이진 부동 소수점 산술 연산에 대한 IEC 60559:1989(IEEE 754) 표준을 따릅니다.

Single은 이 형식의 인스턴스를 비교하고 인스턴스의 값을 문자열 표현으로 변환하며 숫자의 문자열 표현을 이 형식의 인스턴스로 변환하는 메서드를 제공합니다. 형식 사양 코드로 값 형식의 문자열 표현을 제어하는 방법에 대한 자세한 내용은 형식 지정 개요, 표준 숫자 형식 문자열사용자 지정 숫자 형식 문자열을 참조하십시오.

부동 소수점 숫자 사용

이진 연산을 수행할 때 피연산자 중 하나가 부동 소수점 형식인 Single 또는 Double이면 다른 피연산자는 정수 계열 형식 또는 부동 소수점 형식이어야 합니다. 이 연산은 다음과 같이 수행됩니다.

  • 피연산자 중 하나가 정수 계열 형식이면 그 피연산자는 다른 피연산자의 부동 소수점 형식으로 변환됩니다.

  • 그런 다음 피연산자 중 하나가 Double이면 다른 피연산자가 Double로 변환되고 최소한 Double 범위와 정밀도를 사용하여 연산이 수행됩니다. 수치 연산의 경우 결과 형식은 Double입니다.

  • 그렇지 않으면 최소한 Single 형식 범위와 정밀도를 사용하여 연산이 수행되고, 수치 연산의 경우 결과 형식은 Single입니다.

대입 연산자를 포함하여 부동 소수점 연산자는 예외를 throw하지 않습니다. 대신 예외 상황이 발생하면 부동 소수점 연산의 결과는 아래 설명에서처럼 0, 무한대 또는 NaN입니다.

  • 부동 소수점 연산의 결과가 대상 형식에 비해 너무 작으면 연산 결과는 0입니다.

  • 부동 소수점 연산의 결과가 대상 형식에 비해 너무 크면 연산 결과는 결과의 부호에 따라 PositiveInfinity 또는 NegativeInfinity입니다.

  • 부동 소수점 연산이 잘못되었으면 연산 결과는 NaN입니다.

  • 부동 소수점 연산의 피연산자 중 하나 또는 모두가 NaN이면 연산 결과는 NaN입니다.

부동 소수점 숫자는 10진수를 대략적으로만 나타낼 수 있으며 부동 소수점 숫자의 전체 자릿수에 따라 10진수의 근사값인 해당 값의 정밀도가 달라집니다. 내부적으로는 최대 9자리의 정밀도를 유지 관리하지만 Single 값은 기본적으로 7자리만 포함합니다. 부동 소수점 숫자의 자릿수에 따라 다음과 같은 여러 경우가 발생합니다.

  • 특정 정밀도에 대해 동일하게 나타나는 두 개의 부동 소수점 숫자는 최소 유효 자릿수가 다르기 때문에 서로 다른 것으로 간주될 수 있습니다.

  • 부동 소수점 숫자를 사용하는 수학 연산이나 비교 연산에서는 부동 소수점 숫자로 10진수를 정확하게 나타낼 수 없기 때문에 10진수가 사용되는 경우 동일한 결과를 생성하지 않을 수 있습니다.

  • 부동 소수점 숫자가 포함된 경우 값에 라운드트립이 발생하지 않을 수 있습니다. 연산에서 원래 부동 소수점 숫자를 다른 형식으로 변환하고, 역 연산에서 변환된 형식을 다시 부동 소수점 숫자로 변환하며, 최종 부동 소수점 숫자가 원래 부동 소수점 숫자와 같으면 해당 값을 라운드트립 값이라고 합니다. 변환할 때 하나 이상의 최소 유효 자릿수가 손실되거나 변경되기 때문에 라운드트립이 실패할 수 있습니다.

인터페이스 구현

이 형식은 IComparable, IComparable, IFormattableIConvertible 인터페이스를 구현합니다. 변환을 위해 이 형식의 IConvertible 명시적 인터페이스 멤버 구현 대신 Convert 클래스를 사용합니다.

스레드로부터의 안전성

이 형식의 모든 public static(Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 인터페이스 멤버는 스레드로부터 안전하지 않습니다.

플랫폼

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework에서 모든 플래폼의 모든 버전을 지원하지는 않습니다. 지원되는 버전의 목록은 시스템 요구 사항을 참조하십시오.

버전 정보

.NET Framework

2.0, 1.1, 1.0에서 지원

.NET Compact Framework

2.0, 1.0에서 지원

참고 항목

참조

Single 멤버
System 네임스페이스