Vb.net 从数据库值在文本框中计算premium

Vb.net 从数据库值在文本框中计算premium,vb.net,Vb.net,市场价值 我需要计算保险费计算如下: 前10万澳元的5%,之后每10万南非兰特或不足10万南非兰特的10% 所以我不知道该怎么做 我的想法是: 从我的数据集中获取值 Dim Value1 as bool Dim Value2 as bool Dim premium as bool Dim price As String=Convert.ToString(dsVehicleFill.Tables[0].Rows[0][“VEH_MarketPrice”])关于计算溢价的问题与其说是编程问题,不如

市场价值

我需要计算保险费计算如下:

前10万澳元的5%,之后每10万南非兰特或不足10万南非兰特的10%

所以我不知道该怎么做

我的想法是:

从我的数据集中获取值

Dim Value1 as bool
Dim Value2 as bool
Dim premium as bool

Dim price As String=Convert.ToString(dsVehicleFill.Tables[0].Rows[0][“VEH_MarketPrice”])
关于计算溢价的问题与其说是编程问题,不如说是一个数学问题,但这里有几个问题:

Dim Value1 as bool
Dim Value2 as bool
Dim premium as bool
bool
数据类型表示布尔值,即其值应为1或0。在这里使用它们是没有意义的:您将希望变量的类型改为
Double
,这适用于涉及货币的分数计算

至于从DataTable中提取值的问题,您需要更具体地说明哪些不起作用

现在,对于溢价公式,让我们将其分解(在$和R之间切换(我假设是指南非兰特),我将在本例中仅使用美元):

  • 头10万美元可获得5%的溢价
  • 剩余金额每10000美元可获得10美元的溢价,如果低于10000美元,则包括最后一部分
  • 因此,您可以使用如下算法进行计算:

  • 将价值与100000美元进行比较
  • 如果价值是100000美元
    • 减去100000后计算余数
    • 将剩余部分除以10000,得出要申请的10美元保费数(注意:在许多其他语言中,表示
      x/10000
      将导致整数除法,删除任何小数部分。您可以通过如下方式编写常量来强制进行二次除法:
      x/10000.0
      。幸运的是,VB.NET默认为二次除法,正如Proputix在注释中指出的那样。)
    • 取该数字的上限(即将其四舍五入到最接近的整数)
    • 保险费=
      5000美元(前100000美元的5%)+上限*10美元

  • 在Visual Basic中实现这一点留给读者作为练习:)

    当您说“不起作用”时,您的意思是什么?它会引发异常吗?如果是,错误信息是什么?它是否产生了错误的值?该字段中有空值吗?您需要进行几个有问题的类型转换
    value1=price/.05
    因为price是一个字符串,所以它类似于
    “cat”/2
    ,然后将结果(浮点)转换为布尔值。使用
    选项Strict
    我认为
    R
    的意思是表示remainderAh,这是有道理的。幸运的是,我在示例中就是这样解释的。很好的走查,但您的NB不太正确
    x/10000
    会在VB中产生一个双精度-使用
    x\10000
    强制整数除法。这没有什么坏处,但一些吹毛求疵的人可能会提出异议或投反对票。谢谢你的纠正——我在考虑C#和其他地方的语义。我会更新我的答案。
    Dim Value1 as bool
    Dim Value2 as bool
    Dim premium as bool