将十进制转换为10位数字
本文关键字:10位 数字 转换 十进制 | 更新日期: 2023-09-27 18:06:12
在我的c#应用程序中,我有一个decimal
值(10.0
),我需要插入一个数据库字段(字段类型BIGINT
)。数据库中当前的值都是10位长的。
如何将我的10.0
decimal
值转换为1000000000
?
编辑:该字段用于插入到订单事务表中的订单金额。不知道为什么在这个字段中有10位数的值,但是这个表中已经有数百万条记录,所有记录都包含10位数。所以我只是想保持我的价值观不变。
这里有一些基本的add'l细节。在下面的示例中,假设我在txtOrderAmount文本框中输入"10.00",我需要将其转换为"1000000000"以插入数据库:我的c#应用程序:
decimal orderAmount = 0;
orderAmount = Convert.ToDecimal(txtOrderAmount.Text);
if(orderAmount > 0)
{
ledger.InsertOrderTransaction(amount);
}
调用InsertOrderTransaction,然后插入到数据库中。
来自我的数据库表"Ledger"的一些示例记录。样本值为$50.00,$10.00,&13.50美元分别为:
LedgerID | EntryDate | OrderID | Amount
2086 | 2-14-2014 | 1123 | 5000000000
2087 | 2-18-2014 | 1197 | 1000000000
2088 | 3-9-2014 | 8741 | 1350000000
希望有帮助。同样,为什么最初的开发人员在这里做了一个10位的BIGINT,我不知道,但我只是想保持我的值与他的值相同。
try
decimal orderAmount = 0;
orderAmount = Convert.ToDecimal(txtOrderAmount.Text);
if(orderAmount > 0)
{
ledger.InsertOrderTransaction(amount * 100000000);
}
这是一个简单的乘法,如果InsertOrderTransaction
方法接受整数
最简单的方法就是相乘:
Decimal myBigNumber = smallNumber * 100000000;
这有一个主要的警告:任何数字>= 100都会打破,也就是说,它们将是11位长。此外,numbers <10将打破,因为它们将是9位长。
因为整数不存储小数位信息,如果不添加字段或转换为浮点类型,就没有一种简单的方法来修复这个问题。删除10-99的要求将使转换回10.0成为不可能。
谢谢你的帮助。这些答案的问题在于,计算时假设数字在10-99之间。
我稍微调整了一下,以便能够计算任何值:
int wholeVal = (int)amount; //"amount" is a double & the original value from the textbox. Counvert it to an int
int wholeValLength = wholeVal.ToString().Replace(",", "").Length; //get the length of int
string calculation = "1"; //number to calculate begins with 1
for (int i = wholeValLength; i < 10; ++i)
{
//add zeros to the calculation value
calculation += "0";
}
double dblCalculation = Convert.ToDouble(calculation);
ledgerAmount = amount * dblCalculation; //perform calculation