如何用科学记数法格式化数字

2024-02-13

所以基本上我有这个返回的函数: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;

如何保留结果的长版本?


您必须了解计算机不会将数字存储为字符串(文本)。在这种情况下,您正在与浮点数字 https://en.wikipedia.org/wiki/Floating-point_arithmetic。请阅读维基百科文章。 (整数要简单得多。)

然后,每当屏幕上显示一个数字时,计算机子程序用该数字创建一个字符串(文本).

所以你总是有相同的数字,但不同的系统会根据它创建不同的文本表示。

FloatToStr http://docwiki.embarcadero.com/Libraries/en/System.SysUtils.FloatToStr将使用简单的默认数字格式。您想要使用 12 位数字的特定格式(称为“科学”或“指数”)。因此,您需要使用支持以下功能的浮点到字符串例程:

Format('%.12e', [3.0], TFormatSettings.Invariant)

FormatFloat('0.00000000000E+000', 3.0, TFormatSettings.Invariant)

FloatToStrF(3.0, ffExponent, 12, 3, TFormatSettings.Invariant)

请阅读每个函数的文档:

  • Format http://docwiki.embarcadero.com/Libraries/en/System.SysUtils.Format
  • FormatFloat http://docwiki.embarcadero.com/Libraries/en/System.SysUtils.FormatFloat
  • FloatToStrF http://docwiki.embarcadero.com/Libraries/en/System.SysUtils.FloatToStrF
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何用科学记数法格式化数字 的相关文章

随机推荐

  • 插入新实例时不执行实体框架核心延迟加载

    我有两节课 Campaign它引用了一个类客户 public class Campaign Key Required public int id get set public int CustomerId get set ForeignKe
  • 碰撞时阻止移动

    我正在 XNA 中开发 2d 游戏 目前正在上物理课 我当前的任务是在一个物体与另一个物体碰撞时阻止它 我让我的游戏在两个物体发生碰撞时调用此函数 public void BlockMovement gameObject target yo
  • 单击日历时使用 fullcalendar 创建事件(rails)

    当用户单击日历的任何部分时 如何创建事件 然后将其作为新事件存储在数据库中 我知道你必须使用 select function start end allDay 来获取 开始 和 结束 时间 但是当我得到这些数据后 如何将其传递到数据库呢 T
  • Rails 控制台添加 nil 而不是值

    目前 当尝试通过 Rails 控制台或种子数据将新用户添加到我的用户表时 一切都为零 在我的种子文件中 我正在运行 u1 User create from email gt email protected cdn cgi l email p
  • 捕获正则表达式匹配以从查找表中进行替换

    我正在 PowerShell 中编写一个语言解释器 该语言是 PILOT 对于那些可能感兴趣的人 并且我已经达到了实现变量替换的地步 变量名由以下任一组成 or a 后跟该集中最多十个字符 A Za z0 9 但是 如果变量名带有前缀 它应
  • Codeigniter 中的注销功能

    我开始在我的项目中使用 codeigniter 我的网站有用户身份验证系统 我看过 nettuts 的视频以获取登录信息 我很困惑为什么注销不能正常工作 我的登录控制器中有以下注销功能 function logout this gt ses
  • Python 在 Windows 8.1 64 位上错误地检测到 32 位系统

    PS C Users gt C Python27 python exe Python 2 7 15 v2 7 15 ca079a3ea3 Apr 30 2018 16 30 26 MSC v 1500 64 bit AMD64 on win
  • 单表内SQL时间差

    我有一个包含用户登录数据的 MySQL 表 user date type 1 2011 01 05 08 00 00 login 1 2011 01 06 09 00 00 login 1 2011 01 06 10 00 00 logou
  • RankNTypes 与类型别名混淆[重复]

    这个问题在这里已经有答案了 我试图了解类型约束如何与类型别名一起使用 首先 假设我有下一个类型别名 type NumList a Num a gt a 我有下一个功能 addFirst a gt NumList a gt NumList a
  • 从浏览器捕获系统声音

    我正在尝试构建一个 Web 应用程序 从 webrtc 调用捕获本地和远程音频 但我无法录制远程音频 使用 recordRTC 我想知道是否可以以某种方式捕获系统声音 有没有办法从浏览器捕获系统声音 不仅仅是麦克风 也许是一个扩展 在 Ch
  • PHP中如何计算对角线差?

    我有一个N N矩阵 现在我想知道这个矩阵的对角线差异 这个解决方案的最佳方法是什么 我正在尝试使用给定的方法 就这样3 3矩阵说它是 11 15 85 66 72 21 14 21 47 对角线简单公式为 firstD 11 72 47 1
  • VC++ 2010 include/lib 路径

    VC2010 Express 中是否有地方可以为所有项目设置头文件和库路径 当我设置它们时 它们似乎只适用于单个项目 例如 我每次启动新项目时都必须设置它们 我认为你可以为此设置环境变量 INCLUDE 和 LIBPATH 不知道如何从 G
  • 使用 cordova for android 构建会创建错误的版本代码

    运行命令cordova build release android生成版本代码为 70 的 apk 在 config xml 文件中 对于小部件我将其设置为
  • 如何检测 Firefox 中的浏览器关闭事件?

    如何在 Firefox 浏览器中检测浏览器关闭事件 我想在服务器端进行一些清理过程 并维护上次注销时间 为了实现这一点 需要在用户单击注销或关闭浏览器时触发 ajax 调用 对于 IE 以下代码有效 if window event clie
  • 带有 的多行

    代码笔 https codesandbox io s 94lw648lmo fontsize 14 https codesandbox io s 94lw648lmo fontsize 14 我一直在使用 Material ui 和 Rea
  • 如何删除目录中X个文件

    要获取目录中的 X 个文件 我可以这样做 ls U head 40000 那么我该如何删除这 40 000 个文件呢 例如 类似 rm rf ls U head 40000 您需要的工具是xargs 它将标准输入转换为您指定的命令的参数 输
  • 如何为 EF5 导航属性指定列名称

    我首先使用 EF5 代码来生成数据库架构 但我的新导航属性在表中以不合需要的方式命名 这是我正在使用的模型 public class User Key public long UserId get set public virtual IC
  • CSS - 使用滤镜为黑白 PNG 图像添加颜色

    CSS 中是否可以使用滤镜为黑白图像添加颜色 我说的是像 Photoshop 中那样使用过滤器 更好的例子是 Microsoft PowerPoint 中的过滤器 我想做的是 我有一个黑色图标的图像文件 我想为其添加一个过滤器 以便图像中的
  • 具有实体框架的 WCF DataService:TimeSpan 支持

    我正在尝试在公开许多 System TimeSpan 属性的实体框架对象上下文上创建 WCF 数据服务 但是 当我尝试访问该服务时 出现以下错误 DepotRoute 类型上的属性 ScheduledDepartureTime 属于 Tim
  • 如何用科学记数法格式化数字

    所以基本上我有这个返回的函数 3 00000000000E000 function lang extended begin wynik 0 counter 1 temp 1 input 2 for i 1 to 4 do begin for