float32에 소수점 이하 두 자리가 있는지 확인하고 싶습니다. 내 자바 스크립트 방법은 다음과 같습니다.소수점 이하 자릿수는 어떻게 계산합니까?
step := 0.01
value := 9.99
if int(value/step) % 1 == 0 {
printf("has two decimal places!")
}
위의 예제도 작동합니다. 그러나 단계가 올바르지 않으면 float64에서 int로 올바르게 캐스팅 할 수 없으므로 작동하지 않습니다.
예 :
step := 0.1
value := 9.99
if int(value/step) % 1 == 0 {
printf("has two decimal places!")
}
컴파일러 오류 : 우리는 동적 값을 사용하는 경우 constant 9.99 truncated to integer
는 그냥 모든 경우에 true를 돌려줍니다.
그래서 소수점 이하 자릿수를 계산하는 적절한 방법은 무엇입니까?
더 역동적으로 만들 수 있습니까? 어떻게 동적 인 단계가있는 함수로 보입니까? 당신의 예제에서는'100'과'1e-5'를 하드 코딩해야합니다. – bodokaiser
@bodokaiser 업데이트를 참조하십시오. 그러나 값이 9.990000001과 같이 9.99에 매우 근접한 경우 실패합니다. – chendesheng
감사합니다. 질문을 조금이라도 남겨두면 신경 쓰지 마라. 나중에 나는 그것을 나중에 표시하고있다 :) – bodokaiser