VB.net 计算比率
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VB.net 计算比率相关的知识,希望对你有一定的参考价值。
按百分比计算,本来有10个人各占10%,这是突然插入一个人,假设这个人占有2%,怎么从这10个人中抽点百分比给这个人?
参考技术A 你既然固定了新加入的占2%,那么原来的10个人又是均等的,当然剩下的98%每个人有9.8%。 参考技术B 你的程序太繁琐,试试下面的。Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress, TextBox2.KeyPress, TextBox3.KeyPress
If (e.KeyChar >= "0" And e.KeyChar <= "9") Or e.KeyChar = "." Or Asc(e.KeyChar) = Keys.Back Then
e.Handled = False
Else
e.Handled = True
End If
End Sub
Private Sub TextBox1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyUp, TextBox2.KeyUp, TextBox3.KeyUp
Dim myTextBox As TextBox = CType(sender, TextBox)
If myTextBox Is Nothing Then Exit Sub
If myTextBox.Name = TextBox1.Name Then
TextBox2.Text = Val(TextBox1.Text) / 100
TextBox3.Text = Val(TextBox1.Text) / 144
ElseIf myTextBox.Name = TextBox2.Name Then
TextBox1.Text = Val(TextBox2.Text) * 100
TextBox3.Text = Val(TextBox1.Text) / 144
ElseIf myTextBox.Name = TextBox3.Name Then
TextBox1.Text = Val(TextBox3.Text) * 144
TextBox2.Text = Val(TextBox1.Text) / 100
End If
End Sub
这样可以么?追问
text1,text2,text3分别是什么
参考技术C 每个人都减0.02/10=0.2%。其实我不太明白你是啥意思追问10个人各占10%这时额外插入了另一个人,假设这个人是占有2%的,则原来10个人需要各自减去一定的%给这个人
追答2/102约=1.96%
这和vb.net有什么关系吗
不行,我要的是这十个人取出来的数总共等于2%,而不是一个人直接取出2%,这才是难点
我编了个程序需要
除以10不就行了吗,能否告诉我你做的程序是干啥的
追问做游戏用的,算某某单位的占有率
追答我算是看不明白你说的啥了,你又想说明白点私聊吧
本回答被提问者采纳如何在 Visual Studio vb.net 代码中计算平均值? (矩阵)
【中文标题】如何在 Visual Studio vb.net 代码中计算平均值? (矩阵)【英文标题】:How to calculate average in visual studio vb.net code ? (matrix) 【发布时间】:2022-01-17 23:23:41 【问题描述】:我需要计算 vb.net
中矩阵元素的平均值这是我的矩阵
5 | 2 | 1 | 2 |
5 | 5 | 2 | -2 |
1 | 5 | -1 | 1 |
1 | -1 | -5 | -2 |
【问题讨论】:
矩阵是如何定义的? 要计算列和行的平均值吗? 【参考方案1】:其中一个可能是你的“矩阵”
' multidimensional array
Dim m1(,) As Integer =
5, 2, 1, 2,
5, 5, 2, -2,
1, 5, -1, 1,
1, -1, -5, -2
' jagged array
Dim m2()() As Integer =
New Integer() 5, 2, 1, 2,
New Integer() 5, 5, 2, -2,
New Integer() 1, 5, -1, 1,
New Integer() 1, -1, -5, -2
' list of lists
Dim m3 = New List(Of List(Of Integer)) From
New List(Of Integer)() From 5, 2, 1, 2,
New List(Of Integer)() From 5, 5, 2, -2,
New List(Of Integer)() From 1, 5, -1, 1,
New List(Of Integer)() From 1, -1, -5, -2
对于这些矩阵中的每一个,这里是计算平均值的方法
Dim a1 As Double
For i = m1.GetLowerBound(0) To m1.GetUpperBound(0)
For j = m1.GetLowerBound(1) To m1.GetUpperBound(1)
a1 += m1(i, j)
Next
Next
a1 /= (m1.GetUpperBound(0) - m1.GetLowerBound(0) + 1) * (m1.GetUpperBound(1) - m1.GetLowerBound(1) + 1)
Dim a2 As Double
' count items because jagged array can have different # of items in each level
Dim c2 As Integer
For i = m2.GetLowerBound(0) To m2.GetUpperBound(0)
For j = m2(i).GetLowerBound(0) To m2(i).GetUpperBound(0)
a2 += m2(i)(j)
c2 += 1
Next
Next
a2 /= c2
Dim a3 = m3.SelectMany(Function(l) l).Average()
Console.WriteLine($"Multidimensional avg: a1")
Console.WriteLine($"Jagged avg: a2")
Console.WriteLine($"List of List avg: a3")
多维平均:1.1875 锯齿状平均:1.1875 列表平均:1.1875
【讨论】:
以上是关于VB.net 计算比率的主要内容,如果未能解决你的问题,请参考以下文章