나는 FloatToText
이 방법을 사용하고 있습니다 :FloatToText가 다른 프로젝트에서 다른 값을 반환하는 이유는 무엇입니까?
function ExFloatToStr(Value: Extended): string;
var
Buffer: array[0..63] of Char;
FormatSettings: TFormatSettings;
begin
GetLocaleFormatSettings(GetUserDefaultLCID, FormatSettings);
SetString(Result, Buffer, FloatToText(Buffer, Value, fvExtended, ffGeneral,
18, 0, FormatSettings));
end;
, 그것은 문자열 값 9229.9900000000016을 반환하지만, 내가 원하는 게 아니에요. 새 프로젝트를 만들고 거기에있는 코드를 복사하면 잘 작동합니다. 9229.99를 반환합니다.
다른 프로젝트에서 서로 다른 점은 무엇일까요?
표현 가능성 문제를 이해하고 있습니까? –
@David 두 개의 프로젝트에서 OP가 동일한 (!) 부동 소수점 숫자를 사용했지만 다른 결과를 얻었 기 때문에 표현 가능성이 여기에 문제가되는 것은 의심 스럽습니다. – iamjoosy
@iamjoosy 예,하지만 사용자가 '9229.99'를 이진 부동 소수점으로 표현할 수 없다는 것을 알았는지 여부를 확인하려고합니다. –