如何强制 float 和 int 有小数点或尾随零

2024-01-01

我正在尝试通过 RS232 与机器连接,并且机器要求所有输入都有小数点分隔符,否则它会采用小数点位置。例如。如果我发送25它将解释为0.025, but 25.000 or 25.将被正确接收为25.000

I tried Math.Round https://msdn.microsoft.com/en-us/library/System.Math.Round(v=VS.110).aspx但对于整数值,它不包括尾随零。

所以,如果我有

float a = 90;
float b = cos(24);
comPort.WriteLine("G01 A" + a + " B" + b);

我需要添加什么才能强制保留小数点后 3 位?我不关心它是如何舍入的,也不关心它是否被截断。


使用字符串格式。您需要的所有信息都位于以下 MSDN 页面上:

  • 标准数字格式字符串 https://msdn.microsoft.com/en-us/library/dwhawy9k.aspx对于最常见的格式
  • 自定义数字格式字符串 https://msdn.microsoft.com/en-us/library/0c899ak8.aspx如果您需要其他东西
float a = 90;
float b = cos(24);
comPort.WriteLine("G01 A{0:F3} B{1:F3}", a, b);

F3表示小数点分隔符后具有 3 位精度的定点。

这有效,如果comPort是像一个TextWriter,因为这个类有一个WriteLine超载 https://msdn.microsoft.com/en-us/library/60scc1f1.aspx它支持格式化。如果您正在使用SerialPort直接,你不会得到那个过载,你必须把string.Format明确地在那里:

comPort.WriteLine(string.Format("G01 A{0:F3} B{1:F3}", a, b));

编写相同内容的一些等效方法:

comPort.WriteLine("G01 A{0:0.000} B{1:0.000}", a, b);

或者在 C#6 中:

comPort.WriteLine($"G01 A{a:F3} B{b:F3}");

该内容将被编译器翻译为以下内容:

comPort.WriteLine(string.Format("G01 A{0:F3} B{1:F3}", a, b));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何强制 float 和 int 有小数点或尾随零 的相关文章

  • WindowsError:[错误 126] 使用 ctypes 加载操作系统时

    python代码无法在Windows 7平台上运行 def libSO lib ctypes cdll LoadLibrary ConsoleApplication2 so lib cfoo2 1 3 当我尝试运行它时 得到来自python
  • 将运算符 << 添加到 std::vector

    我想添加operator lt lt to std vector
  • 如何在 VC++ CString 中验证有效的整数和浮点数

    有人可以告诉我一种有效的方法来验证 CString 对象中存在的数字是有效整数还是浮点数吗 Use tcstol http msdn microsoft com en us library w4z2wdyc aspx and tcstod
  • C# 方法重载决策不选择具体的泛型覆盖

    这个完整的 C 程序说明了这个问题 public abstract class Executor
  • Environment.CurrentDirectory 与 System.IO.Directory.GetCurrentDirectory

    我正在编写一个 Net WinForms 并不断在调试和发布配置之间切换 并且有一些文件我需要任一配置才能访问 我想做的是将文件放在 BIN 文件夹中的公共目录中 这样它看起来像这样 MyProject Bin CommonFiles My
  • extern 声明和函数定义都在同一文件中

    我只是浏览了一下gcc源文件 在gcc c 我发现了类似的东西 extern int main int char int main int argc char argv 现在我的疑问是extern是告诉编译器特定的函数不在这个文件中 但可以
  • 如何将 .txt 文件中的数据转换为 xml? C#

    我在一个文本文件中有数千行数据 我想通过将其转换为更容易搜索的内容来轻松搜索 我希望 XML 或其他类型的大型数据结构 尽管我不确定它是否是最好的对于我的想法 每行的数据如下所示 第 31 册 托马斯 乔治 32 34 154 每本书都不是
  • 语音识别编程问题入门

    所以 你们可能都看过 钢铁侠 其中托尼与一个名为贾维斯的人工智能系统进行交互 演示剪辑here http www youtube com watch v Go8zsh1Ev6Y 抱歉 这是广告 我非常熟悉 C C 和 Visual Basi
  • 如何在 C# Designer.cs 代码中使用常量字符串?

    如何在 designer cs 文件中引用常量字符串 一个直接的答案是在我的 cs 文件中创建一个私有字符串变量 然后编辑 Designer cs 文件以使用此变量 而不是对字符串进行硬编码 但设计者不喜欢这样抛出错误 我明白为什么这行不通
  • 什么是空终止字符串?

    它与什么不同标准 字符串 http www cplusplus com reference string string 字符串 实际上只是一个数组chars 空终止字符串是指其中包含空字符的字符串 0 标记字符串的结尾 不一定是数组的结尾
  • 在 VS 中运行时如何查看 C# 控制台程序的输出?

    我刚刚编写了一个名为 helloworld 的聪明程序 它是一个 C NET 4 5 控制台应用程序 在扭曲的嵌套逻辑迷宫深处 使用了 Console WriteLine 当我在命令行运行它时 它会运行并且我会看到输出 我可以执行其他命令并
  • 如果输入被重定向则执行操作

    我想知道如果我的输入被重定向 我应该如何在 C 程序中执行操作 例如 假设我有已编译的程序 prog 并且我将输入 input txt 重定向到它 我这样做 prog lt input txt 我如何在代码中检测到这一点 一般来说 您无法判
  • 如何在 C# 中创建异步方法?

    我读过的每一篇博客文章都会告诉您如何在 C 中使用异步方法 但由于某些奇怪的原因 从未解释如何构建您自己的异步方法来使用 所以我现在有这段代码使用我的方法 private async void button1 Click object se
  • 比较:接口方法、虚方法、抽象方法

    它们各自的优点和缺点是什么 接口方法 虚拟方法 抽象方法 什么时候应该选择什么 做出这一决定时应牢记哪些要点 虚拟和抽象几乎是一样的 虚方法在基类中有一个实现 可以选择重写 而抽象方法则没有 并且must在子类中被覆盖 否则它们是相同的 在
  • 代码中的.net Access Forms身份验证“超时”值

    我正在向我的应用程序添加注销过期警报 并希望从我的代码访问我的 web config 表单身份验证 超时 值 我有什么办法可以做到这一点吗 我认为您可以从 FormsAuthentication 静态类方法中读取它 这比直接读取 web c
  • Visual Studio 2015 - Web 项目上缺少共享项目参考选项卡

    我从 MSDN 订阅升级到 Visual Studio 2015 因为我非常兴奋地阅读有关共享项目的信息 当我们想要做的只是重用代码时 不再需要在依赖项中管理 21382 个 nuget 包 所以我构建了一个测试共享项目 其中包含一些代码
  • C++:二叉树所有节点值的总和

    我正在准备面试 我被一个二叉树问题困住了 我们如何计算二叉树所有节点中存在的值的总和 优雅的递归解决方案 伪代码 def sum node if node NULL return 0 return node gt value sum nod
  • EntityFramework 6.0.0.0 读取数据,但不插入

    我创建了一个基于服务的数据库 folderName gt Add New Item gt Data gt Service based Database文件到 WPF 应用程序中 然后我用过Database First方法并创建了Person
  • 在 System.Type 上使用条件断点时出错

    这是函数 public void Init System Type Type this Type Type BuildFieldAttributes BuildDataColumns FieldAttributes 我在第一行设置了一个断点
  • MySqlConnectionStringBuilder - 使用证书连接

    我正在尝试连接到 Google Cloud Sql 这是一个 MySql 解决方案 我能够使用 MySql Workbench 进行连接 我如何使用 C 连接MySqlConnectionStringBuilder 我找不到提供这三个证书的

随机推荐

  • 如果我在全局范围内声明一个没有大小的数组,会得到什么?

    In 答案之一 https codegolf stackexchange com a 5163 38214 in C 语言打高尔夫球的技巧 https codegolf stackexchange com q 2203 38214 我看到了
  • HTTP 标头中的额外空间在 HAProxy 上导致 400 错误

    我们最近从 Citrix 切换到 HAProxy 来实现负载平衡 问题是 对于某些请求 HAProxy 开始给出 400 错误 过去在 citrix 上运行良好 因此 我们暂时从基于 HTTP 的负载平衡转向基于 TCP 的负载平衡 经过进
  • PHP:只有在成功登录后才能访问文件夹的文件

    现在 在我的网站中 我成功登录后成功将用户重定向到www mysite com protected files redirect php页面通过在我的上使用类似的东西www mysite com login php page if logi
  • 检测 Windows 中的全屏模式

    我需要检测某些应用程序当前是否正在全屏模式下运行 如果是 那么我必须停止我的申请 那么 我怎样才能检测到呢 附注Win32 C 所有其他答案都相当黑客 Windows Vista Windows 7 及更高版本支持SHQueryUserNo
  • 如何通过 .Net MVC4 中的 JSON 通过 ajax 调用将复杂的视图模型传递到控制器操作中?

    因此 我尽可能多地搜索 Stack Overflow 但找不到这个特定问题的答案 如果已经有人问过这个问题 我们深表歉意 我找到了以下问题的答案 如何将对象 类传递给操作 如何通过查询字符串将对象传递给操作 如何通过 json 将对象传递给
  • 如何将 rpy2 指向现有的 R 安装?

    我安装了两个 R 有没有办法将 rpy2 明确指向其中一个 我相信 phonixor是对的 rpy2 使用它在路径中找到的 R 如果你想改变这一点 就改变你的道路 PATH path to r bin PATH
  • 如何检索局部变量?

    是否可以从我在 matlab 中运行的程序函数中检索局部变量 即我想从代码中检索一个变量 该变量未出现在输出中 提前致谢 下面描述了添加到函数本身以使变量在本地范围之外可用的代码 当您无法更改函数时 从外部当然无法更改范围 这是预期的 正确
  • 如何删除 Android 上的系统栏,我的意思是,所有

    我对 Android 编程还很陌生 几周前就开始了 Stackoverflow 这是我自 android 第一天以来最好的新油炸 第一次 我想真正寻求帮助 而不是在其他地方阅读它 主要是因为我无法在 任何地方 找到我的问题的答案 我正在使用
  • 为什么我们应该将模板包装在脚本块内?

    背景 所有 JS 模板引擎都建议将模板文本放入脚本块中 如下所示 但许多开发人员 可以理解 不喜欢这样做 因为他们在脚本块内的代码编辑器中失去了 HTML 语法突出显示 我见过这样的解决方法 在 text html 模板中保持正确的 HTM
  • MySqlCommand.LastInsertedId 如何工作?

    在我的一个项目中 我必须从数据库中获取最后插入的 ID 以便我可以将新插入的数据与内存中的数据同步 而无需执行SELECT FROM my db 查询 即我正在做一个SELECT FROM my db WHERE id new index
  • Mongoid 不同领域的相同嵌入文档类型

    我正在尝试添加嵌入文档 我知道这个语法是错误的 但它展示了我想要完成的任务 class Email include Mongoid Document embeds many recipients as to embeds many reci
  • java.io.FileNotFoundException:(不允许操作)在 mac osx (el Capitan) 上使用 ./keytool -import 时出错 - Java 6

    尝试将 CA 证书导入到我的 Java 6 信任库并遇到此错误 keytool v import trustcacerts alias Rapidssl file Users spurr Desktop rapidssl cer keyst
  • ajax调用成功后重新初始化Slick js

    我正在使用 Slick 进行轮播实现 并且在页面加载时一切正常 我想要实现的是 当我进行 Ajax 调用来检索新数据时 我仍然需要 slick 轮播实现 但此刻我失去了它 我已将对 slick 的调用放入函数中 function slick
  • Zend 中的 Flash Messenger 类型

    是否可能或我如何为 Zend 中的 FlashMessage 指定类型 例如 This is a Success message this gt helper gt FlashMessenger You are successfully c
  • flutter doctor - CocoaPods 已安装但无法工作

    使用 zsh 用于在 bash 中工作酿造医生 您的系统已准备好酿造 颤振医生给出了这个错误 Xcode develop for iOS and macOS Xcode 12 2 CocoaPods installed but not wo
  • 代码存储库最佳实践[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何使用标记、颜色和 lw 选项绘制多个数据框列

    虽然线图效果很好 但我正在寻找一种更有效的方法来编写此代码并缩短它 什么被认为是 最佳实践 新人正在做基础工作 我觉得我应该使用循环来分配所有 y 值 也许还有绘图 数据说明 1990 2018 年时间序列数据 包含大陆电力消耗 TWH f
  • 创建操作的自定义 POST 路由未启动

    解释上下文 puts I am learning Rails building a simple forum application puts I am pretty satisfied to where I got so far but
  • 初始化语法

    我喜欢 C 3初始化语法 https learn microsoft com en us dotnet csharp programming guide classes and structs how to initialize objec
  • 如何强制 float 和 int 有小数点或尾随零

    我正在尝试通过 RS232 与机器连接 并且机器要求所有输入都有小数点分隔符 否则它会采用小数点位置 例如 如果我发送25它将解释为0 025 but 25 000 or 25 将被正确接收为25 000 I tried Math Roun