Ruby에서 델타와 두 개의 부동을 비교하는 몇 가지 기능/구문이 있습니까? 과 유사한 것 assert_in_delta (expected_float, actual_float, delta)테스트/단위에서 부울을 반환합니까?델타와 수레를 비교하는 방법?
답변
(expected_float - actual_float).abs <= delta
꽤 많은 assert_in_delta 검사가 있는데, 인수가 float로 변환 될 수 있고 델타가 음수가 아닌지 확인하기위한 추가 어설 션을 제외하고는. –
감사! https://github.com/e-travel/evelpidon_core_ext/commit/7889913af630ec5c8d5465f7d137b2b48fc81c00 –
@NikosD : 테스트는 아마도 .005가 아니라 0.006을 테스트해야합니다. (10.01-10.005) .abs가 <= .005 인 것을 보증 할 수는 없습니다 (나를 위해 0.004999999999999005이지만 숫자 부정확도는 .005보다 약간 더 작게 만들 가능성이 높습니다) – ysth
당신은 또한 당신의 응용 프로그램과 무엇을 당신의 부동 소수점 값이 실제로 대표하는 것은, 그것은 감각와 유리수로 변환 할 수 있도록 수에 따라 상대 허용 오차/델타 계산
을해야 할 수도 있습니다 주어진 정밀도. Rationals는 단지 두 개의 정수이므로 직접 비교는 항상 올바르게 동작합니다.
예를 들어 미국 통화 금액을 알고있는 경우이를 amount.to_r.round(2)
으로 저장하면 평등에 대한 정확한 비교가 가능합니다.
그냥 생각 ... 모든 정수가 아닌 값이 부정확하게-표현 될 필요가
- 1. 고체 델타와 HTML
- 2. 만 6 자리와 수레를 인쇄하는 방법 - 루비
- 3. hasLayout으로 인해 IE7 지움 수레를 멈추는 방법
- 4. 배열의 값을 비교하는 방법
- 5. IP 주소를 비교하는 방법
- 6. 클래스 정의를 비교하는 방법
- 7. 자바에서 시간을 비교하는 방법
- 8. 널 바이트와 비교하는 방법?
- 9. 두 날짜를 비교하는 방법
- 10. COUNTIF에서 리터럴을 비교하는 방법
- 11. LINQ에서 날짜를 비교하는 방법?
- 12. iPhone에서 시간 비교하는 방법?
- 13. 두 날짜를 비교하는 방법?
- 14. android에서 리소스를 비교하는 방법
- 15. 쉘 스크립트에서 비교하는 방법?
- 16. C에서 비교하는 방법
- 17. ASCII 값을 비교하는 방법
- 18. UITextField의 인스턴스를 비교하는 방법
- 19. dll 파일을 비교하는 방법
- 20. RDLC에서 비교하는 방법
- 21. NSString을 비교하는 방법 *
- 22. System.Type과 비교하는 방법?
- 23. IE가 후속 수레를 지우지 않음
- 24. 표시하지 않고 수레를 지움 속성
- 25. 창 메시지에 수레를 보내려면 어떻게해야합니까?
- 26. Groovy에서 두 목록을 비교하는 방법
- 27. Araxis Merge에서 JAR를 비교하는 방법?
- 28. PHP와 SQL에서 날짜를 비교하는 방법?
- 29. 아이폰에서 두 날짜를 비교하는 방법?
- 30. NSNumber를 BOOL로 변환하고 비교하는 방법?
허용 된 대답은 괜찮 수레하지만,이 작업을 수행하는 플로트 또는 인 BigDecimal의 메소드가없는 나는 놀랐어요 비교. –