浮点到字符串:字符串长度问题

2024-02-21

我想将浮点值转换为字符串并创建以下简短示例:

with Ada.Text_IO;

procedure Example is
   A : constant Float := -1.234;
   B : constant Float := 123_456.789;
   C : constant Float := 987.654_321;

   package Float_IO is new Ada.Text_IO.Float_IO (Num => Float);

   String_Float_A : String := "     ";
   String_Float_B : String := "          ";
   String_Float_C : String := "       ";
begin
   Ada.Text_IO.Put_Line (Float'Image (A));
   Ada.Text_IO.Put_Line (Float'Image (B));
   Ada.Text_IO.Put_Line (Float'Image (C));

   Float_IO.Put
     (To   => String_Float_A,
      Item => A,
      Aft  => 2,
      Exp  => 0);

   Float_IO.Put
     (To   => String_Float_B,
      Item => B,
      Aft  => 2,
      Exp  => 0);

   Float_IO.Put
     (To   => String_Float_C,
      Item => C,
      Aft  => 2,
      Exp  => 0);

   Ada.Text_IO.Put_Line (String_Float_A);
   Ada.Text_IO.Put_Line (String_Float_B);
   Ada.Text_IO.Put_Line (String_Float_C);
end Example;

我的问题:我需要在调用过程之前创建字符串变量Put有足够的长度。如何在运行时动态完成此操作?基本上我需要计算出点之前的位数。那么足够的字符串长度将是:1 (sign) + Number_Of_Dots + 1 (decimal separator) + Aft.


小数点前的位数可以通过计算 1 加上常用对数(以 10 为底)的整数部分来计算 数字的整数部分。

In Ada:

    N := Integer (Float'Floor (Log (Float'Floor (abs X), 10.0))) + 1;

您的程序必须与 Ada.Numerics.Elementary_Functions 一起使用。 如果数字为负数,则必须为减号添加空格。

如果整数部分为0,则该公式不起作用,但此时N显然为1。

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

浮点到字符串:字符串长度问题 的相关文章

  • Ada 中的自定义“图像属性”?

    所以我有一件事 type Thing is new record elements end record 我有一个将其字符串化的函数 function ToString t Thing returns string 我希望能够告诉 Ada
  • Ada 中的派生类型和子类型

    有什么区别 首先 术语 它是 Ada 不是 ADA 它是以 Ada Lovelace 命名的 它不是一个缩写词 子类型与其基类型兼容 因此您可以将基类型的操作数与基类型的操作数混合 例如 subtype Week Days is Integ
  • 谁能告诉我 pragma 语句的用法

    谁能告诉我 C 和 Ada 中 pragma 的使用 如果可能的话请提供一些例子 C99 中有 3 个标准编译指示 pragma STDC FP CONTRACT on off switch pragma STDC FENV ACCESS
  • 从 Ada 调用 scanf

    如何从 Ada 调用 scanf 也就是说 大概有一个适当的 pragma import 声明 但是声明会是什么样子呢 我感兴趣的是如何从 Ada 调用更难以驾驭的 C 函数 而不是如何解析字符串本身 所以我不是在寻找纯粹的 Ada 解决方
  • 如何在 Ada 中从其他字符串构建字符串?

    我想在日志文件中输出标题行 然后在数据之前输出一行 为此 我创建了一个标题字符串 然后输出相同数量的 但下面的代码总是失败并出现 CONSTRAINT ERROR 因为生成的字符串不是 1024 个字符 在 Ada 中 字符串赋值需要完全相
  • 如何检查一个元素是否属于一种子类型或另一种子类型?

    刚刚了解了 Ada 中的枚举和类型 决定写一个小程序来练习 with Ada Text IO use Ada Text IO with Ada Integer Text IO use Ada Integer Text IO procedur
  • 将从 C 例程分配的数组传递给 Ada

    将结构 记录数组从 Ada 传递到 C 例程是一回事 在本例中 内存管理是在 Ada 中完成的 但是在与第三方库接口时经常会出现这样的问题 内存管理是在C部分完成的 例如 对于 C 结构 typedef struct MYREC int n
  • 为什么字符串需要用初始值初始化?

    我有一根绳子lx String我想稍后在代码中设置该值 但出现错误unconstrained subtype not allowed need initialization provide initial value or explicit
  • Ada 中类型/包别名的单独声明

    我想声明一些 用户定义的编译器常量 以使我的规范文件尽可能保持 常量 这在 C 中很常见 例如 misc config hh namespace misc typedef std shared ptr a A ptr namespace a
  • 在Android中使用Ada代码

    Android 中是否有可能使用旧的 Ada 代码 我有一个用 Ada 编写的旧脚本 如果我可以直接在 Android 中使用该代码 通过 NDK 或 JNI 等 那就太好了 这可能吗 或者我应该移植代码 以下是我找到的一些链接 但我不太明
  • Ada 中的字符串数组

    我在 Ada95 中有一个程序 我必须在其中创建一个字符串数组 该数组可以包含可变长度的字符串 例子 我已经声明了一个数组 其中所有索引都可以存储大小为 50 的字符串 当我为上面的数组分配一个较小的字符串时 我收到 约束错误 Code p
  • SPARK 整数溢出检查

    我有以下程序 procedure Main with SPARK Mode is F array 0 10 of Integer 0 1 others gt 0 begin for I in 2 F Last loop F I F I 1
  • 将分隔的字段合并为一个

    我在 Ada 工作 我有一个非常丑陋的类型 我无法修改 我想做一些易于使用的事情 类型是这样的 for T Ugly Type Alignment use 4 for T Ugly Type Size use 48 for T Ugly T
  • 从大端数据中提取记录

    我有以下用于网络协议实现的代码 由于协议是大端 我想使用位顺序属性和高阶优先值 但看来我犯了一个错误 With Ada Unchecked Conversion with Ada Text IO use Ada Text IO with S
  • Ada:Windows 上的 cmake 和 PLplot 安装

    这是该帖子的后续内容Ada 绘制二维图 https stackoverflow com questions 3210207 ada plotting 2d graphs 我决定创建一个新帖子 因为这是一个单独的问题 Windows 版 PL
  • 如何将 Ada.Real_TIme.Time 转换为字符串?

    我想写一个Ada Real Time Time http www adaic com standards 05rm html RM D 8 html在一个文件中 我怎样才能做到这一点 Thanks 您可以使用Ada Real Time Sp
  • 创建不兼容的数字子类型

    在 Ada 中 可以创建不兼容的等效数字类型 type Integer 1 is range 1 10 type Integer 2 is range 1 10 A Integer 1 8 B Integer 2 A illegal 这可以
  • 在 Ada 中立即开始循环的下一次迭代

    我想要一个无限循环 其中循环几乎贯穿整个程序 并且在任何时候 基于条件语句 我希望它退出循环的特定迭代并返回到顶部并执行 有办法做到这一点吗 它不必是无限循环 它可以是一个for循环 我只想让它进入该循环的下一次迭代 您可以使用 goto
  • 从 Ada 代码构建静态库,无需 GNAT 即可链接

    我正在尝试从 Ada 代码创建一个静态库 该库可以与一些 C 代码链接 而无需使用 GNAT 工具进行最终链接 我的用例是 我正在尝试将一个用 Ada 编写的库交付给一个为嵌入式目标构建的 C 代码库 为目标构建最终二进制文件的工具链不包含
  • [“03C0”]如何匹配附件P中的语法?

    我正在编写一个工具来使用 2005 年附录 P 中提供的语法来解析 Ada 源文件 通过下面的代码 我知道 03C0 代表 希腊字母Pi 但它是合法的变量名吗 01 package Ada Numerics is 02 Pi constan

随机推荐

  • 如何在 Laravel 中返​​回两次?

    在 Laravel 中有一个函数return back 这将使用户返回到上一页 是否有可能return back 在一个函数中多次返回用户两次或多次 我试过 public function return back return back 但
  • 如何将连接用作具有类型的独立对象?

    不工作的代码只是为了说明我想要实现的目标 一些连接文件 import ConnectionManager from typeorm const c new ConnectionManager user ormconfig conf file
  • 使用 spring:message 在 Spring Web 应用程序中定义表单标签属性

    我正在开发一个 Java Spring Web 应用程序 我当前面临的问题是我希望将来自 message resources 的消息显示为 HTML 中的属性
  • 使用winsock发送位图

    如何通过 winsock 发送位图而不将其保存到文件然后发送 如果您知道如何在收到数据后将数据转换回位图 这也会很有帮助 您使用什么编程语言 基本上 您必须将位图数据存储到某种字节缓冲区中 然后通过线路发送字节 并从另一端的字节缓冲区中读回
  • 如何使用 INotifyPropertyChanged 更新数组绑定?

    假设我有一堂课 class Foo public string Bar get public string this int index get 我可以使用 Binding Path Bar 和 Binding Path x 绑定到这两个属
  • 模式匹配instanceof

    我在上遇到了这个令人惊奇的话题https www baeldung com java pattern matching instanceof https www baeldung com java pattern matching inst
  • Ionic2 中的多个 $http 请求

    我想知道是否有多个请求 if my http request 1开始吧 比方说 http request 1结束并尝试打电话 http request 2 我的问题如何创建多个请求 例如 打电话 http request 1 then ht
  • 通用图像加载器重用图像

    使用通用图像加载器 是否可以直接将图像保存到磁盘并在应用程序的不同运行之间重复使用这些图像 I know imageLoader displayImage imageURI itemHolder image options 第二次从缓存中获
  • 无法打开资源文件,pygame 错误:“FileNotFoundError:没有这样的文件或目录。”

    Import pygame pygame init BG pygame image load pycache test bg jpg def DrawGameWin window blit BG 0 0 pygame display upd
  • 浏览器使用 AJAX + setInterval 不断消耗内存

    我需要使用 JavaScript 在给定的时间间隔内更新大量数据 问题是 无论我使用什么 JS 库 甚至是裸机 js 所有浏览器似乎都会在每个 AJAX 请求上分配内存 并且之后无法释放它 这是一个应该重现错误的示例片段
  • 使用 clang 优化编译时出现意外结果

    我在代码中发现了一个错误 该错误仅在启用编译器优化 O1 或更高版本时才会发生 我跟踪了该错误 似乎在启用优化时我无法在升压转换范围上使用升压 type erased 适配器 我编写了这个 C 程序来重现它 include
  • 命令行命令中的“$”是什么意思?

    我经常发现命令行命令以美元符号在安装许多东西的说明中 例如安装Ruby in Ubuntu 该网站说使用以下命令 sudo apt get install ruby full 什么是 代表 The 不是命令的一部分 它告诉您该命令需要以普通
  • 在 Ruby on Rails 中使用 mini_magick 将 pdf 转换为 png

    背景 我从 API 调用中检索了二进制形式的 pdf base 64 binary data response label generate label response response shipments response shipme
  • ASP3 和 ASP.NET 会话共享

    有没有办法在 ASP3 和 ASP NET 之间共享会话 Thanks 尽管 Microsoft 尽最大努力使 ASP 和 ASP NET 轻松共存 但有一个领域仍然是一个绊脚石 会话状态 幸运的是 ASP NET 升级的会话状态管理的优点
  • JavaScript 在 Android WebView 中不起作用

    我想通过 webView 加载 url 网址是http wapp baidu com f kw BB F0 BC FD http wapp baidu com f kw BB F0 BC FD 此页面可以在系统默认浏览器上正常工作 但在我的
  • 如何使项目浮动在 Jquery 对话框之外

    我想要一个看起来像这样的对话框 我认为这种方法可行 但我想我错了 JavaScript Creates The Dialog ImageDialogDiv dialog position 98 223 resizable false mod
  • jQuery 提交验证,最后有模式对话框?

    我现在有一个表格想要验证 假设一切都正确 我希望它弹出一个对话框确认其详细信息 这是我迄今为止的代码示例 var userConfirmed false dialog dialog buttons Yes function userConf
  • 如何理解ndarray.reshape函数?

    原型为reshape 就是它reshape shape order C 形状的类型是元组 所以我们应该用以下方式调用这个函数myarray reshape 1000 1 32 32 但是我发现很多人用myarray reshape 1000
  • 如何使 Apache mod_deflate 和 Transfer-encoding : Chunked 一起工作?

    我正在尝试在我们的网站上使用大管道概念 这意味着尝试以块的形式发送响应 而不是整体发送响应 以便用户感觉该页面很快 我通过在 java 中的响应对象上使用flushBuffer方法成功地做到了这一点 但是现在 当我尝试使用 apache m
  • 浮点到字符串:字符串长度问题

    我想将浮点值转换为字符串并创建以下简短示例 with Ada Text IO procedure Example is A constant Float 1 234 B constant Float 123 456 789 C consta