수식 데이터 유형 문제? - 두 열을 비교할 때 잘못된 출력안녕,
JMP에서 설명할 수 없는 이상한 문제가 발생했습니다. 내 테이블에서 두 열의 값을 비교하고 있습니다. 열 "A"는 0-100 범위의 정수 값이 있는 단순한 연속 숫자 열입니다. 열 "B"는 0 - 1 범위의 숫자가 있는 또 다른 간단한 연속 숫자 열이며 모두 소수점 이하 두 자리까지의 정밀도를 갖습니다. 그런 다음 "C": B*100에 수식을 설정하여 "A"와 "B"를 직접 비교하기 위해 "C" 열을 만듭니다. 그러나 "A" 열과 "C" 열을 비교하면 몇 가지 경우에 A와 C가 실제로 같지만 JMP에서는 그렇지 않다고 합니다. 이것은 간단한 비교여야 하지만 어떤 이유로 특정 숫자는 비교할 수 없습니다. 열 "C"를 문자로 변경한 다음 다시 숫자로 변경하면 이 문제가 해결되지만 실제로는 이 작업을 수행할 필요가 없을 것 같습니다...근본적인 문제에 대해 설명해 주실 수 있는 분 계신가요?
가능한 모든 숫자를 나열하는 예제 데이터 세트를 첨부했습니다. 7, 14, 28, 29, 55, 56, 57, 58행에 문제가 나오는 것을 볼 수 있습니다.
여기에 대한 통찰력에 감사드립니다.
감사합니다,
여자 이름
Re: 수식 데이터 유형에 문제가 있습니까? - 두 열을 비교할 때 잘못된 출력아, 네, 맞습니다. 정말 고마워!
Re: 수식 데이터 유형에 문제가 있습니까? - 두 열을 비교할 때 잘못된 출력문제는 부동 소수점/이진수에 있습니다.모든 숫자가 정확히 입력된 것으로 정확하게 저장될 수 있는 것은 아닙니다.그것은 컴퓨터에 대한 장기적인 사실 중 하나입니다.그리고 JMP는 수치 데이터를 이 수식에 저장한 다음 표시할 때 수정된 값으로 다시 수정합니다.이는 수치 분석을 수행하는 거의 모든 시스템에서 발생하는 문제입니다.
내가 과거를 기억한다면 3은 저장될 수 없다고 생각하고 실제로는 2.9999999999998과 같이 저장됩니다.숫자 3에 대해 틀릴 수 있지만 아이디어를 얻으시기 바랍니다.
Re: 수식 데이터 유형에 문제가 있습니까? - 두 열을 비교할 때 잘못된 출력@멜리사크 ,
데이터를 복사하거나 수동으로 입력하는 대신 테이블을 스크립팅할 수 있습니까?
다음은 예입니다. 일련의 소수를 생성하는 쉬운 방법을 찾을 수 없습니다. 그러나 이와 같은 작업을 수행하면 반올림 문제를 피할 수 있다고 생각합니다.
dt = New Table();
Set1 = Index(1,100);
Set2 = Index(0.01,1); // This doesn't work
dt << New Column("A",Format("Fixed Decimal",10,2),Numeric,Continuous,<< Set Values(Set1))
<< New Column("B",Format("Fixed Decimal",10,2),Numeric,Continuous,<< Set Values(Set2))// Will Fail
<< New Column("B*100",Format("Fixed Decimal",10,2),Numeric,Continuous,Formula(:B*100))
<< New Column("Check1",Format("Fixed Decimal",10,2),Numeric,Continuous,Formula(:A == :Name("B*100")));Re: 수식 데이터 유형에 문제가 있습니까? - 두 열을 비교할 때 잘못된 출력안녕 @uday_guntupalli
응답해 주셔서 감사합니다. 차이점을 살펴보고 반올림 문제임을 알았어야했습니다. 그런데 JMP가 왜 이렇게 사소한 차이를 만들어내는지 아십니까? 이 숫자를 수동으로 입력하므로 더 이상 소수/정밀도가 없어야 합니다.
Re: 수식 데이터 유형에 문제가 있습니까? - 두 열을 비교할 때 잘못된 출력@멜리사크 ,
반올림 오류 문제입니다. 첨부한 데이터 테이블이 보이면 두 열 간의 차이가 계산되는 새 열을 포함했습니다. JMP가 같지 않은 값을 반환하는 이유는 아주 작은 값입니다.
도움이 되었기를 바랍니다