다음 변수 할당이 올바르게 작동하지 않는 이유는 무엇입니까?

TCat

int각 문자를 캐스트 int하고 해당 지수를 곱하여 사용자 입력을 문자열에서로 변환하려고했습니다 . 결과 값을 int변수 에 할당해야 할 때까지 모든 것이 올바르게 작동합니다 . 할당 된 값이 100에서 1000 사이 일 때 항상 올바른 값보다 하나 적습니다. 즉, int k=0; k+=100;k를 인쇄하면 99가 표시됩니다. 그러나 제대로 k+=1000작동합니다.

내가 찾은 해결책은 승수와 승수의 순서를 변경하는 것이지만이 상황의 원인은 아직 알려져 있지 않습니다.

string k_input;
cin >> k_input;
int k = 0;
for (int i = 0; i < k_input.length(); i++)
{
    cout << (k_input[i] - '0') << " " << pow(10, (k_input.length() - i) - 1) << endl;

    k += (k_input[i] - '0') * pow(10, k_input.length() - i - 1);
}

즉 123을 입력하면 출력은 123이되지만 대신 122가 표시됩니다.

그리고 1221을 입력하면 예상대로 1221이 표시됩니다.

Adrian Mole

컴파일러 및 / 또는 플랫폼별로 문제가 될 수있는 문제는 double계산 결과를 int값으로 변환 할 때 거의 확실하게 '반올림'오류 입니다. lround함수 (에 정의 됨 <cmath>) 를 사용하여이 문제를 해결할 수 있습니다 .

k += lround((k_input[i] - '0') * pow(10, k_input.length() - i - 1));

덧붙여서 컴파일러 경고켜면 이와 같은 문제가 강조됩니다! 코드의 경우 Visual Studio에서 다음과 같이 표시되었습니다.

warning C4244: '+=': conversion from 'double' to 'int', possible loss of data

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

web3 utils BN이 수학에서 올바르게 작동하지 않는 이유는 무엇입니까?

분류에서Dev

IF / THEN이 올바르게 작동하지 않는 이유는 무엇입니까?

분류에서Dev

올바른 바이트 수를 할당하지 않고 malloc이 작동하는 이유는 무엇입니까?

분류에서Dev

PEGjs가 / 올바르게 작동하지 않는 이유는 무엇입니까?

분류에서Dev

count (*)가 올바르게 작동하지 않는 이유는 무엇입니까?

분류에서Dev

목록 필터가 올바르게 작동하지 않는 이유를 파악할 수 없습니다.

분류에서Dev

타이머가 전역 변수를 올바르게 처리하지 않는 이유는 무엇입니까?

분류에서Dev

내 form_validation이 작동하지 않는 이유는 무엇입니까? 오류 : 필드 양식이 올바르게 채워지지 않았습니다.

분류에서Dev

Python 다중 목록 이해가 작동하지 않습니다. 올바르게 수행하는 방법은 무엇입니까?

분류에서Dev

= (단일 같음)을 사용하는 내 같음 비교가 Java에서 올바르게 작동하지 않는 이유는 무엇입니까?

분류에서Dev

printf 문을 삽입하면 함수가 올바르게 작동하는 이유는 무엇입니까?

분류에서Dev

Selenium Webdriver-내부에 변수를 삽입 할 때 driver.get ()이 올바르게 작동하지 않음

분류에서Dev

Bazel run_shell이 인수를 올바르게 배치하지 않는 이유는 무엇입니까?

분류에서Dev

파일을 올바르게 구문 분석 할 수 없습니다. Glob이 작동하지 않음

분류에서Dev

이 Bootstrap 3 열이 올바르게 작동하지 않는 이유는 무엇입니까?

분류에서Dev

입력 함수가 올바르게 입력되지 않는 이유는 무엇입니까?

분류에서Dev

내 코드가 동기화에서 올바르게 작동하지 않는 이유는 무엇입니까?

분류에서Dev

boost :: geometry :: intersection이 올바르게 작동하지 않는 이유는 무엇입니까?

분류에서Dev

Files.isHidden ()이 올바르게 작동하지 않는 이유는 무엇입니까?

분류에서Dev

구문 분석 된 Double이 올바르게 작동하지 않는 이유는 무엇입니까?

분류에서Dev

내 함수가 개체 속성을 올바르게 정렬하지 않는 이유는 무엇입니까?

분류에서Dev

변경된 tkinter 위젯이 올바르게 배치되지 않는 이유는 무엇입니까?

분류에서Dev

toFixed (2)에 따라 소수점이 올바르게 나타나지 않는 이유는 무엇입니까?

분류에서Dev

호버 애니메이션을 올바르게 수행하는 방법이 작동하지 않습니다.

분류에서Dev

Sidekiq 4가 메일러에서 올바르게 작동하지 않는 이유는 무엇입니까?

분류에서Dev

AngularJS $ scope가 올바르게 작동하지 않는 이유는 무엇입니까?

분류에서Dev

greater_equal에서 is_sorted가 올바르게 작동하지 않는 이유는 무엇입니까?

분류에서Dev

입력 변수 변경시`observe`와`observeEvent`가 다르게 동작하는 이유는 무엇입니까?

분류에서Dev

Xarray to_netcdf는 변수 이름을 올바르게 할당합니다.

Related 관련 기사

  1. 1

    web3 utils BN이 수학에서 올바르게 작동하지 않는 이유는 무엇입니까?

  2. 2

    IF / THEN이 올바르게 작동하지 않는 이유는 무엇입니까?

  3. 3

    올바른 바이트 수를 할당하지 않고 malloc이 작동하는 이유는 무엇입니까?

  4. 4

    PEGjs가 / 올바르게 작동하지 않는 이유는 무엇입니까?

  5. 5

    count (*)가 올바르게 작동하지 않는 이유는 무엇입니까?

  6. 6

    목록 필터가 올바르게 작동하지 않는 이유를 파악할 수 없습니다.

  7. 7

    타이머가 전역 변수를 올바르게 처리하지 않는 이유는 무엇입니까?

  8. 8

    내 form_validation이 작동하지 않는 이유는 무엇입니까? 오류 : 필드 양식이 올바르게 채워지지 않았습니다.

  9. 9

    Python 다중 목록 이해가 작동하지 않습니다. 올바르게 수행하는 방법은 무엇입니까?

  10. 10

    = (단일 같음)을 사용하는 내 같음 비교가 Java에서 올바르게 작동하지 않는 이유는 무엇입니까?

  11. 11

    printf 문을 삽입하면 함수가 올바르게 작동하는 이유는 무엇입니까?

  12. 12

    Selenium Webdriver-내부에 변수를 삽입 할 때 driver.get ()이 올바르게 작동하지 않음

  13. 13

    Bazel run_shell이 인수를 올바르게 배치하지 않는 이유는 무엇입니까?

  14. 14

    파일을 올바르게 구문 분석 할 수 없습니다. Glob이 작동하지 않음

  15. 15

    이 Bootstrap 3 열이 올바르게 작동하지 않는 이유는 무엇입니까?

  16. 16

    입력 함수가 올바르게 입력되지 않는 이유는 무엇입니까?

  17. 17

    내 코드가 동기화에서 올바르게 작동하지 않는 이유는 무엇입니까?

  18. 18

    boost :: geometry :: intersection이 올바르게 작동하지 않는 이유는 무엇입니까?

  19. 19

    Files.isHidden ()이 올바르게 작동하지 않는 이유는 무엇입니까?

  20. 20

    구문 분석 된 Double이 올바르게 작동하지 않는 이유는 무엇입니까?

  21. 21

    내 함수가 개체 속성을 올바르게 정렬하지 않는 이유는 무엇입니까?

  22. 22

    변경된 tkinter 위젯이 올바르게 배치되지 않는 이유는 무엇입니까?

  23. 23

    toFixed (2)에 따라 소수점이 올바르게 나타나지 않는 이유는 무엇입니까?

  24. 24

    호버 애니메이션을 올바르게 수행하는 방법이 작동하지 않습니다.

  25. 25

    Sidekiq 4가 메일러에서 올바르게 작동하지 않는 이유는 무엇입니까?

  26. 26

    AngularJS $ scope가 올바르게 작동하지 않는 이유는 무엇입니까?

  27. 27

    greater_equal에서 is_sorted가 올바르게 작동하지 않는 이유는 무엇입니까?

  28. 28

    입력 변수 변경시`observe`와`observeEvent`가 다르게 동작하는 이유는 무엇입니까?

  29. 29

    Xarray to_netcdf는 변수 이름을 올바르게 할당합니다.

뜨겁다태그

보관