안녕하세요.. 고수님들.
아무리 봐도 해결이 안되는 부분이 있어서 여쭤봅니다.
소수이하 입력을 하면 값이 짤려서 들어가는 현상이 있습니다.
예를들어 10.2를 입력하면 10.199로 10.7은 10.699로
값이 들어가는데 해결 방법은 없나요?
제가 해본 소스는 이겁니다.
procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
var sqty : String;
begin
if ((DBGrid1.Columns[9].Index = 9) and (Key = #13 ))then
begin
Query1.Edit;
sqty := FormatFloat('#0.0006', Query1.FieldByName('qty').AsFloat);
Query1.FieldByName('qty').AsCurrency := RoundTo(StrToCurr(sqty), -4);
end;
end;
해결방법 좀 부탁드립니다.
참고로 델버전은 5.0 DB는 mssql입니다.
컴퓨터는 0, 1로만 계산을 해서 그러하다고 하더군요.
한예로 currency type으로 선언된 변수에
0.1을 10번 더하면 답은 1이 아닙니다.
0.99... 이런식으로 되죠.
currency type으로 읽고쓰셔서 그런것 같은데요.