사용자 입력 값과 DB 값의 두 값을가집니다.Float/Float = strange result
var userinput = form["someInput"];
var valuefromDB = GetValue(someNumber);
public float? GetValue(int id){
return (float?) db.table.where(p=> p.id == id).select(p=> p.Value).SingleOrDefault();
}
userinput은 문자열로 값 "1"을 가지며 valuefromDB 값은 float로 0.001입니다.
그래서 1/
= 1000 0.001하지만 내 C# 코드는 결과로 나에게 999.999939을 제공;
var final = float.Parse(userinput)/valuefromDB
내가 가진
는 "2"는 사용자 입력 값으로 결과 ... 모든 소수 정확하게 ( the representation thatfloat
uses 임) 이진 표현 될 수없는 것부터
이것은 플로트 정밀도의 결과입니다. – Candide
모든 프로그래머는 부동 소수점 숫자를 이해해야합니다. http://en.wikipedia.org/wiki/Floating_point#IEEE_754:_floating_point_in_modern_computers – mellamokb
기본 정밀도 10이 필요합니까? 기준 2가 필요합니까? –