问题标签 [units-of-measurement]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - F# 测量单位如何工作?
有没有人有机会深入了解F# 度量单位的工作原理?它只是基于类型的诡计,还是隐藏在下面的 CLR 类型可以(可能)从其他 .net 语言中使用?它适用于任何数字单位,还是仅限于浮点值(这是所有示例使用的)?
naming - 你在你的程序中使用“kibibyte”作为度量单位吗?
几十年来,在计算领域(磁盘制造商除外),1 KB(千字节)被理解为 1024 字节。在过去的几年里,出现了用 KiB(“kibibyte”)来表示 1024 字节的运动,将千字节的含义改为 1000 字节,注定了我们会陷入更多年的困惑。另一方面,该运动似乎仅限于 Gnome,以及一些过分热心的维基百科编辑。
你会将你的程序转换为使用 KiB 吗?如果您曾经以 KB 显示文件大小,您是除以 1000 还是 1024?
algorithm - 如何选择显示值的单位?
我有一个值,我知道它的单位是
米mn/md * kg kn/kd * s sn/sd * K Kn/Kd * A An/Ad
注:指数为有理数,m 0.5为单位有效
问题是如何选择如何将单位分解成更紧凑的东西
例如,如果
我可以使用 N/m
我怀疑这是离散优化问题的某个子集。
floating-point - 您将存储工程数据的计量单位是什么?
在我们的应用程序中,我们目前决定将所有工程数据存储在我们的 SI 数据库中。
我担心我们可能会冒在我们的数据库或 .NET 数字类型中没有足够精确度和准确性的风险。我还担心我们可能会看到浮点数学的伪像(尽管这可能是一个问题)。
例如,源数据可能是以 Psi(磅/平方英寸)表示的压力量(并从某些第 3 方服务中读取)。工程师会选择这种计量单位,因为(对于表示的数量)这将倾向于提供易于消化、人类可读的数字,而不需要科学记数法。
当我们“标准化”这个数字时,即当我们为了我们自己的持久性而转换这个数量时,我们可能会将它转换为 Pa(帕斯卡),这需要将这个数字乘以或除以某个其他可能很大的数字。
我们经常最终存储非常大或非常小的数字,更糟糕的是 - 我们可能会对这些数字进行进一步的计算。
目前我们使用ORACLE float 和System.Double。
人们对此有何看法?
更新
进一步的研究发现了即将推出的 F# 语言(在我写的 CTP 中)对度量单位的支持。
看来我们将能够让 F# 理解用户输入,例如:
我们还可以创建自己的派生单位和单位系统。
(来源:msdn.com)
c# - C# 中的度量单位 - 几乎
受到F# 中的度量单位的启发,尽管断言(在这里)你不能在 C# 中做到这一点,但前几天我有一个想法,我一直在玩。
示例用法:
下一步是尝试实现转换(片段):
(我本来希望避免使用静态实例化对象,但众所周知,您不能在接口中声明静态方法)然后您可以这样做:
显然,与 F# 度量单位相比,这有一个巨大的漏洞(我会让你算出来)。
哦,问题是:你怎么看这个?值得使用吗?其他人已经做得更好了吗?
对这个主题领域感兴趣的人的更新,这里是 1997 年的一篇论文的链接,讨论了一种不同的解决方案(不是专门针对 C#)
php - PHP中的自然语言单位转换?
我正在寻找一个可以从字符串中提取重量/高度数据的库(最好是 PHP)。
我希望我的用户输入诸如“我重 80 k,我身高 1.8m”甚至“220 lb”和“6' 1”之类的内容,并将其传递给可以提取数量和单位的函数。
有谁知道那里有类似的东西吗?
datetime - 在哪里进行转换 - 时区、计量单位等
应该在代码的哪里进行转换?客户端、服务器、业务还是数据库?
我们目前在我们的数据库中进行时区和计量单位的转换,性能正在扼杀我们,并希望移动逻辑。你认为最好的位置在哪里?
谢谢
f# - 如何一般地删除 F# 度量单位
我有一些数据操作代码,最后会吐出 csv。
我开始升级它以在任何地方添加度量单位,但现在我的 csv 函数出现问题:
(参数为文件名、列数组、列标题、分隔符)
在我之前将 [|s;x;y|] 发送到 WriteCSV 的地方,我现在遇到了问题,因为我无法发送 [|skm; 毫米; 嗯|]。
我尝试编写一个用于一般删除度量单位的函数,但它不起作用。
我的问题是:
- 为什么它不起作用?
- 它可以工作吗?
- 有没有另一种方法来解决这个特定的问题?
f# - F# 编译器错误 FS0030,值限制问题
我读过StrangeLights的简介,我读过 Expert F# 的文章(第 119 页),但我看不出它们如何应用于我的代码:
对于我的测试,我想检查浮点数之间的相等性,并有一点宽容。我正在将所有内容转换为度量单位,但我希望能够成为“通用”:
然后我可以使用它来检查不同“类型”浮点数的相等性,或者将其咖喱制作一个自定义的:
但我收到以下消息:
我看不出我还能做些什么来使它成为一个函数——我看不到任何隐式参数。
这是怎么回事?
f# - F# 测量单位 - '提升' 值浮动
从 csv 文件导入数字时,我需要将它们转换为带有单位的浮点数。
目前我使用内联函数执行此操作:
但我想知道是否有更优雅的方法来做到这一点 - 还是我必须创建自己的带有转换功能的“单位”模块?
像这样真的很好,但我怀疑这可能......
这与我之前的问题(如何普遍删除 F# 度量单位)相反。
更新:对于自制装置,我试过这个,效果很好:
或者,按照这个答案中的问题