2014-05-20 4 views
0
javascript: 
var Value1 = prompt("Value? ", ""); 
var Value2 = (Value1+0.00003); 
var Value3 = (Value1+0.00002); 

console.log("Value 1 = " + Value1); 
console.log("Value 2 = " + Value2); 
console.log("Value 3 = " + Value3); 

이 값은 수학을 수행하는 대신 Value1의 끝에 0.0003을 추가합니다. 그러나 Value1에 대한 메시지를 표시하지 않고 직접 값을 지정하면 모든 작업이 올바르게 수행됩니다.값을 묻는 메시지가 표시되고 해당 값에 더하기

예 : Value1 -> 0.8 -> Value2에 대한 프롬프트는 0.80003 대신 0.80.00003이됩니다.

코드를 어떻게 변경해야합니까?

편집 : 제안 "번호"를 추가하여

이 값이 제대로 치료를받을 있지만, ouytput이 예상되지 않는 :

Value 1 = 0.8 
Value 2 = 0.80003 
Value 3 = 0.8000200000000001 

는 왜입니까? 그것의 사용자 입력, 당신은 단지 그것을 수 있도록해야하기 때문에

+0

의''String'을 반환 window.prompt'을, 그래서 당신은에 그것을 변환해야 '번호'먼저. 참고 : https://developer.mozilla.org/en-US/docs/Web/API/Window.prompt – KooiInc

답변

2

Value1 문자열로 저장지고 :

var Value1 = Number(prompt("Value? ", "")); 
+0

감사합니다. – Wannes

+0

콘솔 출력이 예기치 않은 경우 : 값 1 = 0.8 값 2 = 0.80003 값 3 = 0.8000200000000001 – Wannes

+1

@Wannes 자세한 내용은 여기를 참조하십시오. http://stackoverflow.com/questions/588004/is-floating- point-math-broken? lq = 1 – juvian

관련 문제