Округление рублей до копеек
Этот коммит содержится в:
родитель
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) {
|
||||
|
|
Загрузка…
Создание таблицы
Сослаться в новой задаче