가장 가까운 정수로 변환-반올림 없음안녕.
JMP를 처음 접했기 때문에 이것은 전형적인 초보자의 실수라고 확신합니다.
반올림하지 않고 십진수를 정수로 변환해야합니다.
예 1 : 값 0.5986이 column1에서 복사되고 column2에 저장됩니다. 0은 column2에 저장되어야합니다. 대신 1이 저장됩니다.
예 2 : 값 1.5986이 column1에서 복사되고 column2에 저장됩니다. 1은 column2에 저장되어야합니다. 대신 2가 저장됩니다.
Round (x, 0)을 사용해 보았지만 숫자는 항상 반올림됩니다.
또한 column1의 값 형식을 지정하고 다시 숫자로 변환 (실패)했습니다.
Column1이 정의됩니다.
New Column( "Time",
Numeric,
Continuous,
Format( Best, 12),
);
Column2가 정의됩니다.
New Column( "WholeSeconds",
Numeric,
Continuous,
Format( Fixed Dec, 5, 0),
);
암호:
For Each Row(
lvTime = dt:Time;
dt:WholeSeconds = Round( lvTime,0);
);
어떤 도움이라도 대단히 감사합니다.
감사합니다.
스크립팅Re : 가장 가까운 정수로 변환-반올림 없음Floor () 및 Ceiling () 함수를 사용할 수 있습니다.
Re : 가장 가까운 정수로 변환-반올림 없음이외에 헉헉 , 여기에 대한 코드가 있습니다.
보시다시피 수식을 사용하거나 해당 열에 값을 기록 할 수 있습니다.
가능한 경우 테이블없이 루프를 수행 할 수 있다면 각 행에 대해 루프를 피하는 것이 좋습니다.
Names Default To Here( 1 );
cdt = New Table( "Example Floor",
add rows( 2 ),
New Column( "Time", Numeric, Continuous, Format( Best, 12 ), set values( [0.5986, 1.5986] ) ),
New Column( "WholeSeconds_formula", Numeric, Continuous, Format( Best, 12 ), Formula( Floor( :Time ) ) ),
New Column( "WholeSeconds_value", Numeric, Continuous, Format( Best, 12 ), set each value( Floor( :Time ) ) )
);

Re : 가장 가까운 정수로 변환-반올림 없음감사합니다, Georg, txnelson.
이름 확인 팁도 감사합니다. 나는 문서에서 아직 그것을 보지 못했습니다.
루프를 피하기위한 권장 사항이 성능에 부정적인 영향을 미치기 때문이라고 생각합니다. 맞습니까? 루프 대 테이블 공식을 사용하여 성능에 미치는 영향 / 차이는 (대략) 무엇입니까?
감사!
로렌스
Re : 가장 가까운 정수로 변환-반올림 없음소중한 @swanthog , 스크립트에서 행 수가 다른 테이블에서 제곱 y = x * x를 계산하는 세 가지 다른 방법을 테스트했습니다.
결과는
- 루프에 10 배 더 많은 시간이 걸립니다.
- 테이블 작업으로
- 행렬 계산은 테이블 연산보다 5 배 빠릅니다.
또한 깨끗한 코드와 적은 오류 측면에서 각 요소를 처리하는 기능이 내장 된 다른 메서드 (테이블 및 매트릭스)가있는 경우 루프를 피하는 것이 좋습니다.
그러나 작은 스크립트의 경우 성능이 문제가되지 않으면 루프도 괜찮습니다. 또한 (작가의 눈에) 가독성이 중요합니다.
