Округление рублей до копеек

Этот коммит содержится в:
Softonik 2024-06-27 01:38:01 +03:00 коммит произвёл Nobody
родитель 14715dde21
коммит b6535b6c58
6 изменённых файлов: 28 добавлений и 14 удалений

Просмотреть файл

@ -28,7 +28,3 @@ func СекундыВМинуты(seconds int) int {
}
return res + 1
}
func ОкруглитьРубли(сумма float64) int {
return int(math.Round(сумма))
}

Просмотреть файл

@ -2,10 +2,24 @@ package delo_lib
import (
"errors"
"math"
"strconv"
"strings"
)
const (
символовПослеЗапятойДоКопеек = 2
)
func ОкруглитьРубли(сумма float64) float64 {
return RoundFloat(сумма, символовПослеЗапятойДоКопеек)
}
func RoundFloat(number float64, roundingTempDigitsCount int) float64 {
temp := math.Pow(10, float64(roundingTempDigitsCount))
return math.Round(number*temp) / temp
}
func ДатувКвартал(in string) (int, error) {
parts := strings.Split(in, ".")
if len(parts) < 3 {

Просмотреть файл

@ -25,10 +25,10 @@
| доход | оплатить_за_квартал | оплатить_за_год |
| 0 | 0 | 0 |
| 300000 | 0 | 0 |
| 300001 | 0 | 0 |
| 300049 | 0 | 0 |
| 300050 | 1 | 1 |
| 300051 | 1 | 1 |
| 300001 | 0.01 | 0.01 |
| 300049 | 0.49 | 0.49 |
| 300050 | 0.50 | 0.50 |
| 300051 | 0.51 | 0.51 |
| 300100 | 1 | 1 |
| 300200 | 2 | 2 |
| 400000 | 1000 | 1000 |

Просмотреть файл

@ -1,11 +1,9 @@
package schet
import (
"my/schet/pkg/accuracy"
)
import "my/schet/pkg/delo_lib"
func процентСуммы(сумма float64) float64 {
часть := сумма / 100.
часть = float64(accuracy.ОкруглитьРубли(часть))
часть = float64(delo_lib.ОкруглитьРубли(часть))
return часть
}

Просмотреть файл

@ -30,6 +30,7 @@ func InitializeScenario(ctx *godog.ScenarioContext) {
ctx.Step(`^Должна быть ошибка$`, должнаБытьОшибка)
ctx.Step(`^Действие: "([^"]*)" за (\d+) квартал$`, действиеЗаКвартал)
ctx.Step(`^Цель "([^"]*)" за (\d+) квартал достигнута: "([^"]*)"$`, цельЗаКварталДостигнута)
// -----------------------
ctx.Before(func(ctx context.Context, sc *godog.Scenario) (context.Context, error) {
beforeScenario()

Просмотреть файл

@ -2,6 +2,7 @@ package schet
import (
"fmt"
"my/schet/pkg/delo_lib"
. "my/schet/pkg/testlib"
. "github.com/onsi/gomega"
@ -77,7 +78,9 @@ func естьЦельУСНЗаЭтотКвартал(v float64) {
}
func естьЦельСверхТрЗаКвартал(_, _, оплатить string) {
Ω(t.квартал.ПроцентСверх300тр()).To(Be(Atof(оплатить)), "1пр сверх 300тр за квартал")
v := Atof(оплатить)
v = delo_lib.ОкруглитьРубли(v)
Ω(t.квартал.ПроцентСверх300тр()).To(Be(v), "1пр сверх 300тр за квартал")
}
func естьЦельСверхТрЗаNКвартал(arg1, arg2, in int, оплатить string) {
k, err := t.цели.Квартал(in)
@ -86,7 +89,9 @@ func естьЦельСверхТрЗаNКвартал(arg1, arg2, in int, оп
Ω(k.ПроцентСверх300тр()).To(Be(Atof(оплатить)), fmt.Sprintf("1пр сверх 300тр за квартал %v", in))
}
func естьЦельСверхТрЗаГод(_, _, оплатить string) {
Ω(t.g.ПроцентСверх300тр()).To(Be(Atof(оплатить)), "1пр сверх 300тр за год")
v := Atof(оплатить)
v = delo_lib.ОкруглитьРубли(v)
Ω(t.g.ПроцентСверх300тр()).To(Be(v), "1пр сверх 300тр за год")
}
func заданСчёт(v string) {