问题标签 [decimal]

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.

0 投票
5 回答
2445 浏览

.net - 对于这个简单的数学结果,我应该使用十进制、浮点还是双精度?

我正在做一些非常简单的数学运算并将结果保存到 MS SQL2008 DB。

我正在平均一些数字,它们是 1<->5 之间的字节值。我希望只记录小数点后 2 位。我不关心小数点后第二位的四舍五入(例如 1.155 == 1.5 或 1.6 .. 我不太分阶段)。

所以..我应该将平均结果存储为浮点数、小数还是双精度?

当我检查 LINQ 返回的内容时,它可以返回所有三个值!

最后,还有什么是相关的 SQL 数据类型字段。

干杯!

0 投票
5 回答
4388 浏览

java - 轻量级 Java 十进制类

我正在考虑为 BigDecimal 编写两个有限精度的替代方案,即 DecimalInt 和 DecimalLong。这些将能够处理 int 和 long 的实际范围内的数字,具有任意数量的小数位,可以以可变和不可变的形式创建。我的计划是让 DecimalInt 支持 +/-999,999,999 到 +/- 0.999999999 和 DecimalLong 相同,但最多支持 18 位数字。

这将通过将 DecimalInt 的十进制数字计数值 0-9 和 DecimalLong 的 0-18 与存储为缩放的 int 或 long 的实际值一起维护来完成。通常用于小数位数,例如货币和股票价格,通常为 2-4 位小数。

基本要求是 (a) 精简足迹(2 个类,加上 OverflowException),以及 (b) 完全支持所有基本操作以及所有有意义的数学。

谷歌搜索结果没有返回任何明显的命中——它们似乎都与任意小数有关。

我的问题是:这已经完成了吗?这是否有隐藏的微妙之处,这就是为什么它还没有完成?有没有人听说过 Java 支持像 DotNet 的十进制类型的传闻。

编辑:这与 BigDecimal 不同,因为它应该(a)不处理整数数组的效率要高得多,并且(b)它不会包装 BigInteger,因此它也会更精简内存,并且(c) 它将有一个可变选项,因此在那里它也会更快。总而言之 - 像“我想存储银行余额而不需要 BigDecimal 的开销和 double 的不准确性”这样的简单用例的开销更少。

编辑:我打算使用 int 或 long 进行所有数学运算,以避免经典问题:1586.60-708.75=877.8499999999999 而不是 877.85

0 投票
6 回答
10796 浏览

php - PHP 中输​​出的默认小数位数

我在家里的开发盒上做我的 php 工作,在那里我有一个基本的 LAMP 设置。当我在我的 home box 上查看我的网站时,我回显的任何数字都会自动截断到最低要求的精度。例如 2 回显为 2,2.2000 回显为 2.2。

在生产框上,所有数字都与至少一个不必要的零相呼应,例如,100 变为 100.0。在这两个盒子上,PHP 版本都是 5.2.5。有没有人知道我可以更改的设置会强制 PHP 自动删除任何不必要的零?我不想去我的代码中输出数字并用 printf 或类似的东西替换 echo 的每个地方。

非常感谢。

0 投票
4 回答
34049 浏览

vb.net - 在 VB.NET 中拆分“十进制”

我确信这是一个非常简单的问题,但我是 VB.NET 的新手,所以我遇到了问题。

我有一个Decimal变量,我需要将它分成两个单独的变量,一个包含整数部分,一个包含小数部分。

例如,对于 x = 12.34,您最终会得到 ay = 12 和 az = 0.34。

是否有一个很好的内置功能可以做到这一点,还是我必须尝试手动解决?

0 投票
3 回答
37590 浏览

c# - C#,运算符'*'不能应用于'double'和'decimal'类型的操作数

这个错误应该是一个简单的错误,但我似乎无法让它工作。问题在于这个相同的代码在程序的早期工作。我看不出它有什么理由在这个实例上发送一个错误,而不是之前的四个。参考下面的代码,并随时提供您可能有的任何批评,因为它应该让我变得更好。如果重要的话,我正在使用 Sharp Develop 2.2。

这是一个有效的代码示例:

这是在这篇文章的主题行中发送错误的代码示例:

我很感激我能得到的任何帮助。谢谢你。

0 投票
10 回答
25081 浏览

c# - C# 十进制数据类型性能

我正在用 C# 编写一个财务应用程序,其中性能(即速度)至关重要。因为它是一个金融应用程序,所以我必须大量使用 Decimal 数据类型。

在分析器的帮助下,我已经尽可能地优化了代码。在使用 Decimal 之前,一切都是用 Double 数据类型完成的,速度快了好几倍。但是,由于其二进制性质,Double 不是一种选择,在多次操作过程中会导致很多精度错误。

是否有任何可以与 C# 接口的十进制库,它可以让我在 .NET 中的原生 Decimal 数据类型上提高性能?

根据我已经得到的答案,我注意到我不够清楚,所以这里有一些额外的细节:

  • 该应用程序必须尽可能快(即,与使用 Double 而不是 Decimal 时一样快将是一个梦想)。Double 比 Decimal 快大约 15 倍,因为操作是基于硬件的。
  • 硬件已经是一流的(我在双氙气四核上运行)并且应用程序使用线程,因此机器上的 CPU 利用率始终为 100%。此外,该应用程序在 64 位模式下运行,这使其比 32 位具有可测量的性能优势。
  • 我已经优化到了理智点(超过一个半月的优化;信不信由你,现在它需要大约 1/5000 来完成我最初用作参考的相同计算);这种优化涉及到一切:字符串处理、I/O、数据库访问和索引、内存、循环、改变一些东西的制作方式,甚至在任何地方都使用“switch”而不是“if”。分析器现在清楚地表明剩余的性能罪魁祸首是 Decimal 数据类型运算符。没有其他任何东西加起来相当长的时间。
  • 你必须相信我:我已经尽我所能在 C#.NET 领域优化应用程序,我对它目前的性能感到非常惊讶。我现在正在寻找一个好主意,以便将 Decimal 性能提高到接近 Double 的水平。我知道这只是一个梦想,但只是想检查一下我想到了一切可能的事情。:)

谢谢!

0 投票
4 回答
10638 浏览

sql-server - SQL Server 2005 varchar 丢失小数位转换为小数

为什么?

0 投票
11 回答
83697 浏览

sql - 如何在 SQL 中计算带小数的百分比?

如何在 SQL 中将其转换为小数?下面是等式,我得到的答案是 78(整数),但真正的答案是 78.6(带小数)所以我需要显示这个,否则报告不会达到 100%

0 投票
5 回答
31216 浏览

c# - 将小数提高到小数的幂?

.net 框架在 Math 类中提供了一种为 double 供电的方法。但是根据精度要求,我需要将小数提高到小数幂 [ Pow(decimal a, decimal b) ]。框架有这样的功能吗?有谁知道具有这种功能的库?

0 投票
6 回答
202392 浏览

java - 使用 String.format 的 Java 十进制格式?

我需要将一个十进制值格式化为一个字符串,我总是显示至少 2 个小数,最多 4 个。

所以例如

这可以使用 String.format 命令完成吗?
或者在 Java 中是否有更简单/更好的方法来做到这一点。