将 C# 双精度格式转换为三的倍数次幂的科学记数法

2023-12-07

我正在尝试以科学格式格式化一些大数字,但我需要三的倍数的幂。有推荐的方法吗?

我在表格中有一系列数字,而不是真正的科学格式(小数点前有一位数字),我很高兴进行这种更改以获得三的倍数的幂,例如:

3.123e+003
19.523e+003

而不是:

3.123e+003
1.952e+004

我相信,拥有三的倍数的所有幂可以使我的表格更容易扫描。

提前致谢


我认为你需要编写自己的函数。 首先,您可以获得数字的科学表示形式,其精度比您需要的大两位数。 然后您应该解析结果字符串以获取浮点系数和 10 的幂索引作为十进制类型的数字。之后,分析索引除以 3 的余数,并以适当的方式更改数字。最后生成输出字符串。

static string Scientific3(double value, int precision)
{
    string fstr1 = "{0:E" + (precision+2).ToString() + "}";
    string step1 = string.Format(fstr1, value);
    int index1 = step1.ToLower().IndexOf('e');
    if (index1 < 0 || index1 == step1.Length - 1)
        throw new Exception();
    decimal coeff = Convert.ToDecimal(step1.Substring(0, index1));
    int index = Convert.ToInt32(step1.Substring(index1 + 1));
    while(index%3!=0)
    {
        index--;
        coeff *= 10;
    }
    string fstr2 = "{0:F" + precision.ToString() + "}E{1}{2:D3}";
    return string.Format(fstr2, coeff, ((index < 0) ? "-" : "+"), Math.Abs(index));
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 C# 双精度格式转换为三的倍数次幂的科学记数法 的相关文章

  • 检查两个数是否是彼此的排列?

    给定两个数字 a b 使得 1 例如 123 是 312 的有效排列 我也不想对数字中的数字进行排序 如果您指的是数字的字符 例如 1927 和 9721 则 至少 有几种方法 如果允许排序 一种方法是简单地sprintf将它们放入两个缓冲
  • 无法使用已与其底层 RCW 分离的 COM 对象。在 oledb 中

    我收到此错误 但我不知道我做错了什么 下面的代码在backrgroundworker中 将异常详细信息复制到剪贴板 System Runtime InteropServices InvalidComObjectException 未处理 通
  • 未解决的包含:“cocos2d.h” - Cocos2dx

    当我在 Eclipse 中导入 cocos2dx android 项目时 我的头文件上收到此警告 Unresolved inclusion cocos2d h 为什么是这样 它实际上困扰着我 该项目可以正确编译并运行 但我希望这种情况消失
  • 如何在列表框项目之间画一条线

    我希望能够用水平线分隔列表框中的每个项目 这只是我用于绘制项目的一些代码 private void symptomsList DrawItem object sender System Windows Forms DrawItemEvent
  • 指针问题(仅在发布版本中)

    不确定如何描述这一点 但我在这里 由于某种原因 当尝试创建我的游戏的发布版本进行测试时 它的敌人创建方面不起作用 Enemies e level1 3 e level1 0 Enemies sdlLib 500 2 3 128 250 32
  • 获取没有非标准端口的原始 url (C#)

    第一个问题 环境 MVC C AppHarbor Problem 我正在调用 openid 提供商 并根据域生成绝对回调 url 在我的本地机器上 如果我点击的话 效果很好http localhost 12345 login Request
  • 将目录压缩为单个文件的方法有哪些

    不知道怎么问 所以我会解释一下情况 我需要存储一些压缩文件 最初的想法是创建一个文件夹并存储所需数量的压缩文件 并创建一个文件来保存有关每个压缩文件的数据 但是 我不被允许创建许多文件 只能有一个 我决定创建一个压缩文件 其中包含有关进一步
  • C 预处理器库

    我的任务是开发源分析工具C程序 并且我需要在分析本身之前预处理代码 我想知道什么是最好的图书馆 我需要一些重量轻 便于携带的东西 与其推出自己的 为什么不使用cpp这是的一部分gcc suite http gcc gnu org onlin
  • Json.NET - 反序列化接口属性引发错误“类型是接口或抽象类,无法实例化”

    我有一个类 其属性是接口 public class Foo public int Number get set public ISomething Thing get set 尝试反序列化Foo使用 Json NET 的类给我一条错误消息
  • WPF TabControl,用C#代码更改TabItem的背景颜色

    嗨 我认为这是一个初学者的问题 我搜索了所有相关问题 但所有这些都由 xaml 回答 但是 我需要的是后台代码 我有一个 TabControl 我需要设置其项目的背景颜色 我需要在选择 取消选择和悬停时为项目设置不同的颜色 非常感谢你的帮助
  • 使用 System.Text.Json 即时格式化 JSON 流

    我有一个未缩进的 Json 字符串 例如 hash 123 id 456 我想缩进字符串并将其序列化为 JSON 文件 天真地 我可以使用缩进字符串Newtonsoft如下 using Newtonsoft Json Linq JToken
  • 在 ASP.NET Core 3.1 中使用包含“System.Web.HttpContext”的旧项目

    我们有一些用 Net Framework编写的遗留项目 应该由由ASP NET Core3 1编写的API项目使用 问题是这些遗留项目正在使用 System Web HttpContext 您知道它不再存在于 net core 中 现在我们
  • 从路径中获取文件夹名称

    我有一些路c server folderName1 another name something another folder 我如何从那里提取最后一个文件夹名称 我尝试了几件事 但没有成功 我只是不想寻找最后的 然后就去休息了 Thank
  • 如何将单个 char 转换为 int [重复]

    这个问题在这里已经有答案了 我有一串数字 例如 123456789 我需要提取它们中的每一个以在计算中使用它们 我当然可以通过索引访问每个字符 但是如何将其转换为 int 我研究过 atoi 但它需要一个字符串作为参数 因此 我必须将每个字
  • 如何在 VBA 中声明接受 XlfOper (LPXLOPER) 类型参数的函数?

    我在之前的回答里发现了问题 https stackoverflow com q 19325258 159684一种无需注册即可调用 C xll 中定义的函数的方法 我之前使用 XLW 提供的注册基础结构 并且使用 XlfOper 类型在 V
  • 如何使我的表单标题栏遵循 Windows 深色主题?

    我已经下载了Windows 10更新包括黑暗主题 文件资源管理器等都是深色主题 但是当我创建自己的 C 表单应用程序时 标题栏是亮白色的 如何使我自己的桌面应用程序遵循我在 Windows 中设置的深色主题 你需要调用DwmSetWindo
  • WCF:将随机数添加到 UsernameToken

    我正在尝试连接到用 Java 编写的 Web 服务 但有些东西我无法弄清楚 使用 WCF 和 customBinding 几乎一切似乎都很好 除了 SOAP 消息的一部分 因为它缺少 Nonce 和 Created 部分节点 显然我错过了一
  • 为什么我收到“找不到编译动态表达式所需的一种或多种类型。”?

    我有一个已更新的项目 NET 3 5 MVC v2 到 NET 4 0 MVC v3 当我尝试使用或设置时编译出现错误 ViewBag Title财产 找不到编译动态表达式所需的一种或多种类型 您是否缺少对 Microsoft CSharp
  • Process.Start 阻塞

    我正在调用 Process Start 但它会阻止当前线程 pInfo new ProcessStartInfo C Windows notepad exe Start process mProcess new Process mProce
  • 限制C#中的并行线程数

    我正在编写一个 C 程序来生成并通过 FTP 上传 50 万个文件 我想并行处理4个文件 因为机器有4个核心 文件生成需要更长的时间 是否可以将以下 Powershell 示例转换为 C 或者是否有更好的框架 例如 C 中的 Actor 框

随机推荐

  • Angular2:将服务器端配置注入服务

    我在 ASP NET Core 中使用 Angular 2 0 0 和 TypeScript 我的目标是根据服务器端变量在我的应用程序中创建 AppConfig 服务 在其他几个答案的帮助下 我能够创建以下代码 索引 cshtml
  • 如何使用jquery获取输入类型?

    我有一个页面 输入类型总是变化 我需要根据输入类型获取值 因此 如果类型是收音机 我需要知道哪个被选中 如果它是一个复选框 我现在需要检查哪个 如果它是一个下拉菜单 我需要知道哪个被选中 如果是 我需要知道我需要知道文本 文本区域的值 关于
  • Java注解无法从上层类访问受保护的静态字段

    该代码有效吗 public abstract class A protected static final String c my const myAnnotation value A c public class B extends A
  • SyndicateFeed:内容为 CDATA?

    我正在使用 NET 的 SyndicateFeed 来创建 RSS 和 ATOM 提要 不幸的是 我需要在描述元素 SyndicateItem 的 Content 属性 中包含 HTML 内容 并且格式化程序会自动对 HTML 进行编码 但
  • PHP 重命名包含 utf-8 阿拉伯字符集字符串的文件名失败

    我的 php 重命名功能有问题 如果文件名是带空格的阿拉伯单词 它会失败 e g rename temp mp3 audio 13408831061 mp3 路径 中没有这样的文件或目录 请注意 xxxxxxxx mp3 xxxxxxx这里
  • JQuery .Show() 不适用于服务器控制?

    我有 2 个 html TR 是我制作的runat server visible false 我有一个名为的下拉列表citiesDropDownList document ready function change function Val
  • 使用 QDataStream 将 QImage 转换为 QByteArray

    我试图将由 ScreenShot 制作的 QImage 转换为 QByteArray 以通过 QTCPSocket 发送 当我将 QImage 转换为 QByteArray 并在发送之前我尝试反序列化并将其显示在标签上 但它不能 我有什么错
  • Avalondock MVVM 布局

    所以这个问题之前已经被问过但没有得到答复 or 没有按照我想要的方式回答 我知道如何创建我想要实现的布局 使用LayoutAnchorablePaneGroup LayoutAnchorablePane and LayoutDocument
  • 如何使用 webdriver 中的 css 选择器按值定位元素?

    对于以下元素 如何使用css选择器通过td的值找到它 在本例中它是 独特的文本 td class someclass unique text td 你可以使用这样的东西 使用 CSS 选择器 By cssSelector td class
  • 在 XAMPP 中安装 dBase 扩展

    我在使用 PHP 5 5 11 在 XAMPP 中安装 dBase 扩展时遇到问题 我添加了php dbase dll到 php ext 文件夹并将以下行添加到php ini file extension php dbase dll 但是当
  • 更新进度对话框

    我正在尝试制作一个应用程序 可以帮助我评估从网络资源下载文件的时间 我找到了2个样本 使用 Android 下载文件 并在 ProgressDialog 中显示进度 and http www helloandroid com tutoria
  • 在 PHP 中使用 NumberFormatter 保留尾随零

    我正在致力于将遗留系统从 PEAR 的 i18nv2 类升级到 PHP 的内置 INTL 库 当我指定一个像这样的模式时 0 并运行NumberFormatter format 在像这样的数字上12345 1000 I get 12 345
  • 在 PIC 上使用 long long 时的舍入问题

    我正在 PIC 微控制器上做一些简单的数学运算 运行 C 代码并使用 MPLABX 和 xc16 编译器 这是代码 double mydouble 0 019440 long long int mypower 281474976710656
  • 如何使用 CSS 或 JavaScript 仅显示视频帧的一部分?

    我只想显示给定视频的部分视频帧 让我用例子来解释我的意思 我有一个宽屏视频 852 x 480 但我想通过使用 CSS 或 JavaScript 来模拟裁剪 将其显示为全屏视频 640 x 480 视频文件不变 该脚本只是隐藏侧面的像素 我
  • 编写 A 型框架的测试规范

    我对 VR 完全陌生 正在 AFrame 中为一个班级项目开发 VR 太空射击游戏 想知道 AFrame 中是否有 TDD 的任何文档 标准 有人能指出我正确的方向吗 几乎完全使用 A 框架组件构建您的应用程序 https aframe i
  • 如何在加载时保存图像的宽度和高度?

    我有一个数组 li 我试图将这些元素制作成轮播 只是我希望图像大小大于 640x480 时进行调整 并居中于框架中 我有以下代码 HTML ul li img src pic1 jpg p b 2012 b something p li l
  • iOS 设备未使用 GDAsyncUdpSocket 接收 UDP 多播

    下面的代码旨在接收 239 255 255 250 上的 UDP 多播消息 并简单地 NSLog 消息的内容 如果我将消息发送到 iOS 设备的 IP 即从终端echo foo nc u 10 1 10 249 1900 消息被接收并被 N
  • 反编译java类文件的最佳软件是什么? [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 如何批量反编译多个class文件 JD Gui让你的生活变得轻松 它还有一个 eclipse 插件 编辑 更新了该工具的最新网址
  • info - 未处理的 socket.io url

    我正在开发一个 socket io node 项目 就像这个页面一样 http davidwalsh name websocket我在 socket io v7 中收到 信息 未处理的 socket io url 错误 但我在 v6 17
  • 将 C# 双精度格式转换为三的倍数次幂的科学记数法

    我正在尝试以科学格式格式化一些大数字 但我需要三的倍数的幂 有推荐的方法吗 我在表格中有一系列数字 而不是真正的科学格式 小数点前有一位数字 我很高兴进行这种更改以获得三的倍数的幂 例如 3 123e 00319 523e 003 而不是