问题描述
所以基本上我有这个函数返回:3.00000000000E000
function lang():extended;
begin
wynik := 0 ;
counter := 1;
temp :=1;
input := 2;
for i:= 1 to 4 do
begin
for k:= 1 to 4 do
begin
if i = k then counter := counter
else temp := temp * ((input - a[k]) / (a[i] - a[k]));
end;
wynik := wynik + temP*f[i];
temp := 1;
end;
Result := wynik;
end;
但是当我尝试使用FloatToStr在应用程序屏幕上打印它时,我只会得到3。
procedure TFormCalculator.Button1Click(Sender: TObject);
begin
Edit1.Text := FloatToStr(lang());
end;
如何保留结果的长版本?
解决方法
您必须了解计算机不会将数字存储为字符串(文本)。在这种情况下,您正在使用floating-point numbers。请阅读该维基百科文章。 (整数要简单得多。)
然后,每次在屏幕上显示数字时,计算机子例程都会从该数字中创建一个字符串(文本)。
因此,您始终拥有相同的数字,但是不同的系统会根据该数字创建不同的文本表示形式。
FloatToStr
将使用简单的默认数字格式。您想使用12位数字的特定格式(称为“科学”或“指数”)。因此,您需要使用支持以下内容的浮点字符串例程:
$(document).on("click","#form1",function() {
var count = $('input').filter(function(input){
return $(this).val() == "";
}).length;
alert(count);
});
请阅读每个功能的文档: