일부 데이터를 처리하는 레일 앱이 있는데이 데이터 중 일부는 1.9943
과 같은 소수점 이하 숫자와이 숫자와 다른 정수 사이의 구분을 포함합니다. 나는 이것을 저장하는 가장 좋은 방법이 무엇인지 알고 싶었다.수레, 소수 또는 정수
정수를 정수로 유지할 수있는 숫자를 십진수로 소수점 이하 자릿수로 저장할 생각입니다. 이
#<BigDecimal:7fda470aa9f0,'0.197757E1',18(18)>
같은 이상한 형식으로했지만 내가 두 진수 또는 정수와 소수를 나눌 때 올바른 연산을 수행 할 것으로 보인다. 정수로 정수를 나눌 때 제대로 작동하지 않습니다. 레일즈가 결과를 자동으로 적절한 십진수로 변환 할 것이라고 생각했지만, 정수로 유지하고 나머지를 제거하는 것으로 보입니다. 이것에 대해 제가 할 수있는 일이 있습니까?
그리고 이러한 유형의 정보를 저장하는 가장 좋은 방법은 무엇입니까? 십진수로 모두 저장해야합니까? 아니면 수레로 둡니다. 당신은 정밀도를 잃지 않고 두 정수를 나눌 경우
죄송합니다 내가 실수를했다. 정수/소수는 잘 동작한다. – user2158382
이것은 float 대신 BigDecimal을 사용하는 것을 제외하면 작동한다. 왜 내가 대신 float을 사용해야하는지 말해 줄 수 있습니까? – user2158382
@ user2158382 BigDecimal은 임의로 정확한 표현이 필요할 때 사용됩니다. Float는 배정도 표현으로 충분할 때 사용됩니다. – dbyrne