我想在一开始就有一个包含"$"符号的文本输入字段,无论字段发生什么编辑,标志都是持久的.
如果只接受输入数字,我会很好,但这只是一个奇特的补充.
我知道BigDecimal是用于在Java中表示货币价值的推荐最佳实践.你用什么?您是否更喜欢使用更好的库?
有没有办法格式化小数如下:
100 -> "100"
100.1 -> "100.10"
Run Code Online (Sandbox Code Playgroud)
如果是圆数,则省略小数部分.否则格式化为两位小数.
我们正在用VB.NET和SQL Server重写我们的旧会计系统.我们引入了一个新的.NET/SQL程序员团队来进行重写.大多数系统已经使用Floats完成了Dollar数量.我编程的遗留系统语言没有Float,所以我可能会使用Decimal.
你有什么建议?
Float或Decimal数据类型应该用于美元金额吗?
两者的优点和缺点有哪些?
在我们的日常scrum中提到的一个骗局是,当你计算一个返回超过两个小数位的结果的金额时,你必须要小心.听起来你必须将金额四舍五入到小数点后两位.
另一个Con是所有显示和打印金额必须有一个显示两个小数位的格式声明.我注意到有几次没有这样做,金额看起来不正确.(即10.2或10.2546)
专家是Float只占用磁盘上的8个字节,其中Decimal占用9个字节(十进制12,2)
这对某些人来说似乎是一个愚蠢的问题,但我需要将一个双精度数转换成十进制来用作货币.M去哪儿了?
decimal dtot = (decimal)(doubleTotal);
Run Code Online (Sandbox Code Playgroud) 我不需要掩码,但我需要一些可以格式化货币的东西(在所有浏览器中)并且不允许输入任何字母或特殊字符.谢谢您的帮助
例:
有效期:$ 50.00
$ 1,000.53
无效:$ w45.00
$ 34.3r6
我总是在c#中告诉double类型的变量不适合赚钱.所有奇怪的事情都可能发生.但我似乎无法创建一个示例来演示其中的一些问题.谁能提供这样的例子?
(编辑;这篇文章最初被标记为C#;一些回复指的是具体细节decimal,因此意味着System.Decimal).
(编辑2:我特别要求一些c#代码,所以我不认为这只是语言不可知)
我试图使用longs为自己的货币制作自己的类,但显然我应该使用BigDecimal.有人可以帮助我开始吗?什么是用最好的方式BigDecimalS代表美元货币,比如至少使它但没有对仙超过2位小数,等等.对于API BigDecimal是巨大的,我不知道要使用哪些方法.此外,BigDecimal具有更好的精度,但如果它通过一个double?如果我做新的BigDecimal(24.99),它会如何与使用double?或者我应该使用使用的构造函数String?
我在这里遇到了范式问题.我不知道是否应该将钱存储为Decimal(),或者我是否应该将其存储为字符串并将其自身转换为小数.我的理由是这样的:
PayPal需要2个小数位,所以如果我有一个49美元的产品,PayPal希望看到49.00遇到问题.Django的DecimalField()不设置小数.它只存储最大小数位数.所以,如果你有49个,并且你将字段设置为2个小数位,它仍然将它存储为49.我知道Django基本上是类型转换,当它从数据库反序列化为Decimal时(因为数据库)没有十进制字段),所以我并不完全关心速度问题,就像我遇到这个问题的设计问题一样.我想做可扩展性最好的事情.
或者,更好的是,是否有人知道如何配置django DecimalField()以始终使用TWO_PLACES格式样式进行格式化.
currency ×10
decimal ×3
java ×3
bigdecimal ×2
c# ×2
html ×2
accounting ×1
casting ×1
django ×1
field ×1
formatter ×1
jquery ×1
persistent ×1
python ×1
sql-server ×1
symbols ×1
text ×1
vb.net ×1