두 점의 모든 정수를 점의 오른쪽으로 이동하는 방법은 무엇입니까? 예제 나는 5342를 가지고 있는데, 나는 0.5342를 반환하는 함수를 원한다. 나는 이중의 자릿수를 알지 못한다. 그것은 무작위로 생성된다. 상당히 쉽지만 답변을 찾을 수 없습니다.두 점의 모든 정수를 점의 오른쪽으로 이동하는 방법
답변
이것은 정직하게, 매우 기괴한 작업처럼 들리 겠지만, 당신은 사용할 수 있습니다 입력이 무한대하지만 경우 무한 루프로 이동합니다
while (Math.Abs(value) >= 1)
{
value = value/10;
}
- 당신이 아니라 당신 같은 정보가 유실 될 수 있습니다 계속 나눕니다. 후자의 점이 중요합니다. 실제로 관심있는 것이 10 진수 표현 인 경우 double
대신 decimal
을 사용해야합니다.
당신은 잠재적으로 그것을 할 Math.Log
및 Math.Pow
의 혼합물을 사용할 수 있지만 위의 내가 시작했던 것과 아마.
public static double SomeMethod(double n)
{
double d = n;
bool isNegative = (d < 0);
if(isNegative)
d = d * -1;
while(d >= 1)
d = d/10;
if(isNegative)
d = d * -1;
return d;
}
대안 (더 정확한) 옵션이 될 때까지 (10)에 의해
그냥 분할 :
public static double SomeMethod2(double n)
{
double d = n;
bool isNegative = (d < 0);
if(isNegative)
d = d * -1;
int numberOfDigits = ((int)d).ToString().Length;
int divisor = 1;
for(int i = 0; i < numberOfDigits; i++)
divisor = divisor * 10;
d = d/divisor;
if(isNegative)
d = d * -1;
return d;
}
이렇게하면 나누기 때마다 정밀도가 떨어질 수 있으므로 결과가 반드시 정확하지는 않습니다. 그것은 입력 값의 도메인과 그것들이 정확하게 "이동"될 필요성에 달려 있습니다. – Lukos
@Lukos 더 나은 대체 솔루션으로 업데이트했습니다. –
private static void Main(string[] args)
{
Console.WriteLine(MyFunction(5127));
Console.WriteLine(MyFunction(1));
Console.WriteLine(MyFunction(51283271));
Console.WriteLine(MyFunction(-512));
Console.WriteLine(MyFunction(0));
}
public static double MyFunction(double myNumber)
{
return Math.Floor(myNumber)/Math.Pow(10, Math.Abs(myNumber).ToString().Length);
}
.NET 피들; 이제 작동합니다. 고칠 때마다 고마워! (출력을 업데이트하고 싶을 수도 있습니다 ... Heres the fiddle : https://dotnetfiddle.net/7glnL5 – BradleyDotNET
내 솔루션을 고쳐 주셔서 감사합니다. – Veverke
이 당신을 얻을 것이다 대부분의 방법 거기
public static string test()
{
double dub = 5432;
string dubTxt = dub.ToString();
string text = "0.";
string test = string.Concat(text + dubTxt);
if (1 == 1)
{
MessageBox.Show(test);
return test;
}
}
음수를 처리하기 위해 더 많은 if 문을 개발해야합니다.
public static string test()
{
double dub = 5432;
string dubTxt = dub.ToString();
string text = "0.";
string test = string.Concat(text + dubTxt);
if (dub < 0)
{
//Do this code instead
}
}
행운을 빈다. 당신이 그것을 선택하면 나를 부딪쳐주세요! 나는 다른 쓰레기를 할 수 있도록 신용이 필요합니다. :-D
- 1. 두 밀도 점의 차이
- 2. 2D 배열에서 두 점의 차이를 얻는 방법
- 3. 두 점의 움직임이 작동하지 않습니다.
- 4. OpenGL - 이웃 점의 그룹화 방법
- 5. 3d 점의 중첩 알고리즘
- 6. 클러스터와 점의 상관 관계
- 7. 모든 공 선형 점의 볼록 선체?
- 8. 점의 회전 각도를 결정하는 방법
- 9. JFreechart에서 점의 색으로 변경하는 방법
- 10. 점의 구름이없는 슬라이스 각도
- 11. 여러 점의 최대 퍼짐
- 12. 수학 - 점의 클러스터링
- 13. 점의 구형 시스템 회전
- 14. 점의 벡터를 두 개의 공간으로 나눕니다.
- 15. JavaScript (SVG 그림) : 위치 x 점의 점의 크기
- 16. 점의 로그 플로팅
- 17. 점의 자동 완성 수행
- 18. 라인 모서리 점의 엄지 손가락이 점의 위치를 변경하지 않습니다
- 19. SQL Server Google지도에서 두 점의 공간 거리
- 20. 목록에서 두 점의 최대 거리 결정
- 21. 두 줄 사이에 한 점의 거리를 얻는다
- 22. 위도와 경도가 주어진 두 점의 중간 점
- 23. 한 점의 거리가 주어진 점의 좌표 (x, y)는 무엇입니까?
- 24. Matlab에서 점의 행을 그려야합니다.
- 25. 오브젝트 중심과 점의 비교?
- 26. 점의 벡터로 이미지
- 27. 참조 점의 형상 계산
- 28. 식료품 점의 재고
- 29. 파이썬에서 점의 배열 구성하기
- 30. 점의 등고선 매칭을위한 알고리즘
'double someNumber = Convert.ToDouble ("0."+ 5321, CultureInfo.InvariantCulture);', ** ** ** :) – Habib
@Habib 네거티브를 처리 할 수 있습니까? –
또는 비 - 정수 ... –