Hallo ihr Lieben ;),
ich arbeite zurzeit an einem Wirtschaftlichen Programm, bzw. einem Programm für meinen Unterricht
Dort muss ich Zahlen runden.
Im Zahlenbereich von 1- 1.000 ~ in 50er Einheiten : 750,800,850
Klappt =>
Im Zahlenbereich von 1.000- 10.000 in 100er Einheiten : 5500, 5600,9800
Klappt auch => nun aber
Im Zahlen bereich von 10.000- 50.000 => 250er Einheiten : 17250, 17500 , 17750
Er rundet mir hier auf 100er Schritte
Das gleiche bei 50.000 - 100.000 => 500er Einheiten : 85000, 86000, 865000
Edit: Habe die Dateien angehängt.
Habe immer den Hinteren Wert geändert, auf das was gerundet werden soll, nur bei den letzten beiden wird in 100er gerundet. Was kann ich tun ?
Hier der TestCode:
Spoiler anzeigen
ich arbeite zurzeit an einem Wirtschaftlichen Programm, bzw. einem Programm für meinen Unterricht
Dort muss ich Zahlen runden.
Im Zahlenbereich von 1- 1.000 ~ in 50er Einheiten : 750,800,850
Klappt =>
Im Zahlenbereich von 1.000- 10.000 in 100er Einheiten : 5500, 5600,9800
Klappt auch => nun aber
Im Zahlen bereich von 10.000- 50.000 => 250er Einheiten : 17250, 17500 , 17750
Er rundet mir hier auf 100er Schritte
Das gleiche bei 50.000 - 100.000 => 500er Einheiten : 85000, 86000, 865000
Edit: Habe die Dateien angehängt.
Habe immer den Hinteren Wert geändert, auf das was gerundet werden soll, nur bei den letzten beiden wird in 100er gerundet. Was kann ich tun ?
Hier der TestCode:
VB.NET-Quellcode
- Module Module1
- Sub Main()
- Dim isn As Integer = 0
- Do Until isn = -1
- Console.WriteLine("Eingeben")
- rechnen(Console.ReadLine)
- Loop
- End Sub
- Dim trading_buy_p As Integer = 85
- Dim trading_sell_P As Integer = 95
- Sub rechnen(ByVal avp_price)
- Dim ek_preis As Integer = 0
- Dim vk_preis As Integer = 0
- Dim avp_preis As Integer = CInt(avp_price)
- ' 1.000
- If avp_preis < 1000 Then
- Dim ekp_ungerunded As Integer = CInt(avp_preis / 100 * trading_buy_P)
- ek_preis = Convert.ToInt32(Math.Round(ekp_ungerunded / 50) * 50)
- Dim vkp_ungerunded As Integer = CInt(avp_preis / 100 * trading_sell_P)
- vk_preis = Convert.ToInt32(Math.Round(vkp_ungerunded / 50) * 50)
- If ek_preis = vk_preis Then
- ek_preis = ek_preis - 50
- End If
- ek_preis = ek_preis - 100
- ' 10.000
- ElseIf vk_preis < 10000 Then
- Dim ekp_ungerunded As Integer = CInt(avp_preis / 100 * trading_buy_P)
- ek_preis = Convert.ToInt32(Math.Round(ekp_ungerunded / 100) * 100)
- Dim vkp_ungerunded As Integer = CInt(avp_preis / 100 * trading_sell_P)
- vk_preis = Convert.ToInt32(Math.Round(vkp_ungerunded / 100) * 100)
- If ek_preis = vk_preis Then
- ek_preis = ek_preis - 500
- End If
- If vk_preis - 100 <= ek_preis Then
- ek_preis = ek_preis - 200
- End If
- '50.000
- ElseIf vk_preis < 50000 Then
- Dim ekp_ungerunded As Integer = CInt(avp_preis / 100 * trading_buy_P)
- ek_preis = Convert.ToInt32(Math.Round(ekp_ungerunded / 250) * 250)
- Dim vkp_ungerunded As Integer = CInt(avp_preis / 100 * trading_sell_P)
- vk_preis = Convert.ToInt32(Math.Round(vkp_ungerunded / 250) * 250)
- If ek_preis = vk_preis Then
- ek_preis = ek_preis - 2500
- End If
- '100000
- ElseIf vk_preis < 100000 Then
- Dim ekp_ungerunded As Integer = CInt(avp_preis / 100 * trading_buy_P)
- ek_preis = Convert.ToInt32(Math.Round(ekp_ungerunded / 500) * 500)
- Dim vkp_ungerunded As Integer = CInt(avp_preis / 100 * trading_sell_P)
- vk_preis = Convert.ToInt32(Math.Round(vkp_ungerunded / 500) * 500)
- If ek_preis = vk_preis Then
- ek_preis = ek_preis - 5500
- End If
- ElseIf vk_preis < 1000000 Then
- Dim ekp_ungerunded As Integer = CInt(avp_preis / 100 * trading_buy_P)
- ek_preis = Convert.ToInt32(Math.Round(ekp_ungerunded / 1000) * 1000)
- Dim vkp_ungerunded As Integer = CInt(avp_preis / 100 * trading_sell_P)
- vk_preis = Convert.ToInt32(Math.Round(vkp_ungerunded / 1000) * 1000)
- If ek_preis = vk_preis Then
- ek_preis = ek_preis - 5500
- End If
- End If
- Console.WriteLine("DSP=" & avp_preis & " EK/VP:" & ek_preis & "/" & vk_preis)
- End Sub
- End Module
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Redjo“ ()