double
값을 string
값으로 변환해야하는 함수가 있습니다.소수점 값 얻기
inline static string StringFromNumber(double val) // suppose val = 34.5678
{
long integer = (long)val; // integer = 34
long pointPart; // should be = 5678 how do I get it?
}
integer
와 pointPart
모두에 대해 long
값을 얻으려면 어떻게해야합니까?
추가 : 0을 버리고 17 개의 숫자로 된 정밀도를 원합니다. 더 많은 예제 :
val = 3.14 정수 = 3 pointPart = 14
val = 134.4566425814748 정수 = 134 pointPart = 4566425814748
지금까지 아무런 해결책이 없습니다. 그것을 어떻게 얻을 수 있습니까?
'pointpart = (val - 정수) * decimalplacesyouneed'? 오, 길다는 것을 알 수 있습니다. 소수점 몇 자리를 원하십니까? – RedX
34.567 및 34.56789에 대한 pointPart는 무엇이되어야합니까? 또한 val ≥ LONG_MAX + 1이면 어떻게 될까요? –
당신의보기와 질문은 가짜입니다. 34.5678은 정확하게 이중으로 표현할 수 없습니다. 여기를 확인하십시오 : http://pages.cs.wisc.edu/~rkennedy/exact-float?number=34.5678 567799999999998606011794792115688323974609375 대답으로보고 싶지 않다고 가정합니다. –